1

我有 2 个从数据库中获取数据的下拉列表。我希望根据我在第一个下拉菜单(#id_univ)上选择的值在第二个下拉菜单中出现相应的值。

我创建的函数如下:

$("#id_univ").on("change", function(){

                $.getJSON("ajax/univ_department.php",{university: $(this).val(), ajax: 'true'}, function(data){
                    var options = '';

                    for (var i = 0; i < data.length; i++) {
                        options += '<option value="' + data[i].id_dpt + '">' + data[i].nameDpt + '</option>';
                    }
                    $("#uni_departments").html(options);
                })
            })

使用firebug Ι检查返回正确的值,如我所料:

[{id_dpt: 1, nameDpt: 'Physics'},{id_dpt: 2, nameDpt: 'Mathematics'}]

但我在第二个下拉菜单(#uni_departments)中看不到任何价值。

关于我做错了什么的任何想法。

更新

我只是用 jquery-1.2.3 尝试上面的代码并且工作正常。当我使用 jquery-1.8.3 时,这是我在项目中使用的默认版本,它会中断。

任何可能存在问题的建议,因为我不喜欢使用较旧的 jquery!

4

1 回答 1

0

我会尝试使用 jquery 的 dom 操作机制:

 $.getJSON("ajax/univ_department.php",{university: $(this).val(), ajax: 'true'}, function(data){
  $("#uni_departments").empty();
  for (var i = 0; i < data.length; i++) {
    var opt = $('<option value="' + data[i].id_dpt + '">' + data[i].nameDpt + '</option>');
    $("#uni_departments").append(opt);
  }
})
于 2013-08-11T19:20:51.950 回答