2017-05-31 2 views
0

Ich möchte ein Lehrer mehrere Klassen auswählen, wenn er auf eine Schaltfläche klicken, die Klassen aus der Datenbank ausgewählt und über ein Tag angezeigt werden. Ich habe eine Funktion gemacht, die eine neue Auswahl macht und eine andere Liste der Klassen anzeigt, aber meine foreach-Schleife scheint nicht zu funktionieren ...PHP wie Foreach Schleife in Javascript

Hier ist meine JQuery, die in einem 'Skript' Tag im HTML ist:

$(document).ready(function() { 
    var max_fields  = 10; //maximum input boxes allowed 
    var wrapper   = $(".input_fields_wrap"); //Fields wrapper 
    var add_button  = $(".add_field_button"); //Add button ID 

    var x = 1; //initlal text box count 
    $(add_button).click(function(e){ //on add input button click 
     e.preventDefault(); 
     if(x < max_fields){ //max input box allowed 
      x++; //text box increment 
      $(wrapper).append('<div><select name="klas" style="width:40%;"><?php foreach ($klas as $klas) {echo "<option value='".$klas->getCode()."'>".$klas->getCode()."</option>"; } ?></select><a href="#" class="remove_field">Verwijder</a></div>'); //add input box 
     } 
    }); 

    $(wrapper).on("click",".remove_field", function(e){ //user click on remove text 
     e.preventDefault(); $(this).parent('div').remove(); x--; 
    }) 
}); 

Dies ist die Taste und die entsprechende divs:

<div class="input_fields_wrap"> 
    <button type="button" class="add_field_button">Add More Fields</button> 
    <div> 
<select name="klas"> 
<?php foreach ($klas as $klas) { 
echo "<option value='".$klas->getCode()."'>".$klas->getCode()."</option>"; } ?> 
</select> 
    </div> 
</div> 

Hat jemand eine Idee, wie ich das gleiche Ergebnis von JQuery wie aus dem regulären php/html Auswahlbox erreichen kann?

+0

@AthMav dies auf die Frage weder hilfreich noch verwandt ist –

+0

Wo gehören Sie Ihre js ? Haben Sie

0

es gefunden. Ihr Problem besteht darin, dass Sie sowohl für den $klas Array als auch für die interne Variable foreach denselben Wertnamen verwenden. Obwohl dies technisch nicht korrekt ist, beachten Sie, dass nach foreach$klas Variable wird gleich letzten Element des Arrays sein - nicht das Array selbst.

Da Sie diese Schleife in Javascript verwenden, war es schwer zu erkennen, und lokaler Test mit foreach zeigte, dass alles in Ordnung ist.

Auf jeden Fall aktualisieren Sie Ihren Code (überall wurden sie verwendet wird) aus:

<?php 
    foreach ($klas as $klas) { 
     $klas->getCode() 
    } 
?> 

zu

<?php 
    foreach ($klas as $k) { 
     $k->getCode(); 
    } 
?>