如何通过AJAX从其他选择框更改选择框选项

时间:2013-03-14 15:11:20

标签: php jquery ajax json

我有一个弹出窗体,里面有两个下拉菜单。根据第一个选择的选项,我必须在第二个中更改可能的选项。由于信息在数据库中,我必须通过Ajax检查信息。

以下是示例结果:

$arr = {
    "1" => array("1","first","ref1"),
    "2" => array("2","second","ref2"),
    "3" => array("3","third","ref3")
};

请问您如何传递此数组,以及如何将这些选项分配给第二个选择框 我现在有以下代码,它运作良好。
function onChangeBrand(){
var brandId = $('#brand')。val();
$ .ajax({
 键入:“POST”,
 数据类型:'json',
 url:“items / getModel”,
 数据:{brandId:brandId},
 成功:功能(数据){
    //
 } });
} 我收到的数据看起来像一个包含以下信息的字符串:
[[“model_id”:“5”,“name”:“M1132”},{“model_id”:“4”,“name”: “ProBook 6470”}]


如何将此信息传输到jquery数组并将其作为选项传递给第二个下拉菜单。

2 个答案:

答案 0 :(得分:0)

你可以从服务器获取一个带有一些数据的Json对象并循环遍历它们以使用Javascript动态创建选项:

for(var i in options){
  option       = $('<option>');
  option.value = options[i].value;
  option.append(options[i].text);
  select2.append(option);
}

plunker中的工作代码示例 希望这有帮助。

答案 1 :(得分:0)

您可以尝试使用这段代码 -

     var secondSelect=$('#secondselectid');
     var dataString=[{"model_id":"5","name":"M1132"}, {"model_id":"4","name":"ProBook 6470"}];    
     $(dataString).each(function(key,val){
         var selectoption=$('<option>');
         selectoption.value = val.model_id;
         selectoption.append(val.name);
        $(secondSelect).append(selectoption); 
      });