2017-07-11 3 views
0

Ich versuche, eine PHP-Variable ($ Zweck) ziehen und zeigen es auf der Option auswählen. Der Code, den ich habe (siehe unten), funktioniert nur, wenn ich das Elementattribut ng-model = "purpose" herausgenommen habe. Wenn ich das ng-Modell in-place gelassen habe, zeigte die Option select die Option Purpose, die darauf hinwies, dass php echoinng nicht durchlaufen wurde. Es scheint, dass die php-Variable widerhallt und angularjs miteinander in Konflikt stehen. Hat jemand dieses Problem? Gibt es eine Problemumgehung?angularjs interferiert mit echoing PHP-Variable

<select id="purpose" class="form-control custom-select" name="purpose" value="<?php if(isset($purpose) or !empty($purpose)) {echo $purpose;}?>" ng-model="purpose" autocomplete="on" required/> 
    <option <?php if($purpose == "") echo 'selected';?> value="">Purpose</option> 
    <option <?php if($purpose == "1030") echo 'selected';?> value="1030">1Exchange</option> 
    <option <?php if($purpose == "1040") echo 'selected';?> value="1040">Non-exchange</option> 
    <option <?php if($purpose == "1050") echo 'selected';?> value="1050">Financing</option> 
</select> 

Antwort

0

Sie Wert nicht verwenden Attribut, wenn ng-Modell. Initialisieren Sie einfach eine Variable Zweck & zuweisen PHP-Variable zu ihm. Wie unten:

<select ng-init="purpose = <?php if(isset($purpose) or !empty($purpose)) {echo $purpose;}?>" id="purpose" class="form-control custom-select" name="purpose" ng-model="purpose" autocomplete="on" required/> 
     <option <?php if($purpose == "") echo 'selected';?> ng-value="">Purpose</option> 
     <option <?php if($purpose == "1030") echo 'selected';?> ng-value="1030">1Exchange</option> 
     <option <?php if($purpose == "1040") echo 'selected';?> ng-value="1040">Non-exchange</option> 
     <option <?php if($purpose == "1050") echo 'selected';?> ng-value="1050">Financing</option> 
    </select> 
+0

Hallo, ich habe Ihren Code ausprobiert und es hat nicht funktioniert. – javystar

+0

Ich aktualisierte die Antwort –

0

Während Sie es erhalten könnte der Lage sein, arbeiten mit diesem Stil, ist es empfehlenswert, JSON zu verwenden, um Daten aus Back-End Winkel aufzufüllen.

<?php 
$purpose_arr = array(
    "1030" => "1Exchange", 
    "1040" => "Non-exchange", 
    "1050" => "Financing" 
); 

echo "<script> var purpose='" + json_encode($purpose_arr) + "'; </script>" 
?> 

html: 
<select id="purpose" class="form-control custom-select" name="purpose" ng-model="purpose" autocomplete="on" required 
    ng-options="value as key for (key, value) in purpose" /> 
    <option value="">Purpose</option> 
</select> 

controller: 
$scope.purpose = purpose; 
Verwandte Themen