使用来自ajax的数据填充多个下拉列表

时间:2013-09-06 18:49:53

标签: php jquery

我有一个包含多个下拉列表的表单

<select id="0" name ="0">
<option value="abc">ABC</option>
<option value="def">DEF</option>
.
.
.
<option value="mno">MNO</option>
</select>
.
.
.
<select id="9" name="9">
<option value="abc">ABC</option>
<option value="def">DEF</option>
. 
.
.
<option value="mno">MNO</option>
</select>

// 这是代码的基本结构

现在我有一个ajax调用,它提供了以下json数据

{ “2”: “ABC”, “5”: “DEF”, “6”: “GHI”, “7”: “DEF”, “4”: “MNO”}

我想根据json数据

填充下拉列表

例如,对于这种情况,带有id 2 show的下拉列表选项值为abc,带有od 5的下拉列表应该选择值作为def选择等等。

 $.ajax({
        type : 'POST',
        url : ajax_url,
        data : datavar,

        success : function(msg) {

        }
        });

json数据存在于成功的msg参数中。

我该怎么办?

提前致谢。

2 个答案:

答案 0 :(得分:1)

如果你想保留所有jquery,就这样做吧。)

$.ajax({
    type : 'POST',
    url : ajax_url,
    data : datavar,

    success : function(msg) {
      $.each(msg, function(k, v){
         $('#'+k).val(v);
      });
    }
});

这将遍历每个返回的对象属性,并使用k(键)查找选择并分配所选值(v)。

你也可以这样做:

for(var key in msg){
    if(msg.hasOwnProperty(key)){
        $('#'+key).val(msg[key]);
    }
}

您只需确保修复选择框的值属性即可。现在他们缺少尾随值=“ABC(”)......这将导致问题

答案 1 :(得分:0)

由于你使用的是AJAX和JQUERY,这就是我完成你的壮举的方法:

for(var i = 0; i <= msg.length; i+=2) {
    $('#' + msg[i]).val(msg[i+1]);
}

这将获取JSON数据中的第一个项目,即选择框ID,并将其值设置为第二个JSON数据。在效果中,它告诉下拉框在包含该值的OPTION上设置SELECTED =“SELECTED”。

对不起,如果不是那么清楚!