ajax返回数据失败

时间:2014-01-17 11:03:37

标签: javascript php ajax

我正在使用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调用返回时,它显示当前页面的代码。 请告诉我如何有效地实现这一点,以便正确填充选择选项。 提前致谢

1 个答案:

答案 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