簡體   English   中英

PHP如何在Javascript中使用Foreach循環

[英]PHP how to use Foreach loop in Javascript

我希望老師單擊按鈕時選擇多個班級,這些班級是從數據庫中選擇的,並通過標簽顯示。 我做了一個可以進行新選擇並顯示其他類列表的函數,但是我的foreach循環似乎不起作用...

這是我的JQuery,它位於HTML的“腳本”標記中:

$(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--;
    })
});

這是按鈕和對應的div:

<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>

有人知道我如何從JQuery中獲得與常規php / html選擇框相同的結果嗎?

將您的數組以arr格式顯示在此答案中,並附加到div,無論您當前在頁面上的哪個位置,我都使用select_div

<div class="input_fields_wrap">
        <button type="button" class="add_field_button">Add More Fields</button>
        <div id ="select_div">
        </div>
    </div>
    <script type="text/javascript">
    var arr = [
      {val : 1, text: 'One'},
      {val : 2, text: 'Two'},
      {val : 3, text: 'Three'}
    ];

    var sel = $('<select>').appendTo('#select_div');

    $(arr).each(function() {
     sel.append($("<option>").attr('value',this.val).text(this.text));
    });
    sel.append("</select>")
    </script>

找到了。 您的問題是$klas數組和內部foreach變量都使用相同的值名稱。 盡管從技術上來講這不是錯誤的,但是請注意,在foreach $klas變量將等於數組的最后一個元素,而不是數組本身

由於您是在javascript中使用此循環,因此很難發現,並且使用foreach進行本地測試表明一切都很好。

無論如何,請從以下位置更新您的代碼(無論在何處使用):

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM