在Jquery中,我根据php数组中的项目数量动态创建选择框,并尝试将每个选择框选项的值更改为数组项的值。
首先,这是HTML:
<div id="artistArea">
<div class="category_block">
<select name="artistSelect[]" class="cat_list">
<option value="">- none -</option>
</select>
</div>
</div>
这是阵列转换:
var arrayFromPHP = <?php echo json_encode($exhibArray) ?>; // There's our array from php->jquery
然后我首先填充第一个选择中的选项,然后在'success'回调中的'each'循环中创建后续框:
$.ajax({
url: 'artistpop.php',
success: function(data){
$('.cat_list').append(data); //Sets options for first select box
$.each(arrayFromPHP, function (i, elem) { //loop through our array values
$("#artistArea > .category_block:last .cat_list").val(elem); //set the select box value
$('#artistArea > .category_block:last').after($('#artistArea > .category_block:last').clone()); //clone the previous select box
});
}
});
所以......问题是:
初始框创建和填充正常,后续框的创建也是如此。但是,只有第一个选择框设置为数组中的适当值;其他人仍然选择“无”选项。
在每个循环中这可能是错误的吗?
我希望这很清楚 - 我很困惑!
答案 0 :(得分:0)
您是否尝试在您想要的实际选项上设置“已选择”属性,而不是设置选择的值?换句话说,就像......
$('#artistArea > .category_block:last .cat_list option[value=' + elem + ']').attr('selected','selected');