我知道这是一个非常愚蠢的问题,但我被困住了。 我有选择框
<select class="valid sbi" name="FORM[rd]" id="rd" data-error="">
<option value="1">11</option>
</select>
和数据(文本和值)
...
$.ajax({
url: '123.php',
type: 'POST',
data: {post_data:post_data},
dataType: 'JSON',
success: function(data) {
}
我想在选择框
中为每个选项设置值和文本 <select class="valid sbi" name="FORM[rd]" id="rd" data-error="">
<option value="1">11</option>
<option value="2">22</option>
<option value="3">33</option>
...
</select>
请给我一些建议
谢谢和问候
答案 0 :(得分:0)
我猜您通过post ajax调用获取选项相关数据。所以就像
$.ajax({
url: '123.php',
type: 'POST',
data: {post_data:post_data},
dataType: 'JSON',
success: function(data) {
//if data send is like [{value:'k2',text:kk1},{value:'k1',text:kk2},{value:'k3',text:kk3}]
var html = "";
for(x in data) {
html += "<option '"+data[x].value+"'>"+data[x].text+"</option>"
}
$("#rd").html(html);//append the generated html into select box
}
});
成功回调的循环逻辑根据ajax响应而不同。
答案 1 :(得分:-1)
$.ajax({
url: '123.php',
type: 'POST',
data: {post_data:post_data},
dataType: 'JSON',
success: function(data) {
for(var i=0;i<data.length;i++){
var option = document.createElement("option");
option.value = data[i].value;
option.innerHTML = data[i].text;
//or for example "select[name='FORM[rd]']" or simply "#rd"
$(".valid.sbi").append(option);
}
}
});
......这将是我所知道的最简单的方法(for循环是在不知道响应结构的情况下编写的,并且必须改变其中)