我正在使用javascript来获取select选项的值 - 由之前的select选项中的更改触发。
$('#groupid, #lbl_groupid').hide();
$('#subgroupid, #lbl_subgroupid').hide();
$('#managerid').change(function(){
var manager_id = $('#managerid').val();
if (manager_id != "")
{
var post_url = "nab1/index.php/main_page/get_groups/" + manager_id;
$.ajax({
type: "POST",
url: post_url,
success: function(group_list) //we're calling the response json array 'cities'
{
$('#groupid').empty();
$('#groupid, #lbl_groupid').show();
$.each(data,function(id,value)
{
var opt = $('<option />'); // here we're creating a new select option for each group
opt.val(id);
opt.text(value);
$('#groupid').append(opt);
});
} //end success
}); //end AJAX
} else {
$('#groupid').empty();
$('#groupid, #lbl_groupid').hide();
}//end if
}); //end change
当我在浏览器get_groups
中调用函数以及我得到的参数{"4":"nab_group_1_1","6":"nab_group_2_1"}
但是没有填充选项。
我在控制器中有以下代码
function get_groups()
{
$manager = $this->uri->segment(3);
$group_list = $this->models_personnel->get_groups_by_managerid($manager);
//header('Content-Type: application/x-json; charset=utf-8');
echo json_encode($group_list);
}
有人可以告诉我们错了吗。
当我在警报中使用从ajax调用返回时,它显示当前页面的代码。 请告诉我如何有效地实现这一点,以便正确填充选择选项。 提前致谢
答案 0 :(得分:0)
这里的代码有误:
$.each(data,function(id,value)
应该是:
$.each(group_list,function(id,value)
因为您在此处命名了返回的数据group_list
:
success: function(group_list)
另外,将dataType: "json",
添加到您的ajax调用中:
$.ajax({
type: "POST",
url: post_url,
dataType: "json",
// etc