无法使用ajax从codeigniter函数获取数据

时间:2012-12-26 18:20:11

标签: php jquery ajax codeigniter

这是我到目前为止所得到的:

此函数从模型中返回数据:

function get_user2()
{
    $this->load->model('my_model');
    $id=$this->input->post('users1');
    $users2=$this->my_model->get_relations($id);
    return $users2;
}   

模型功能:

function get_relations($usr)
{
        $this->db->where('id',$usr);
        $rel=$this->db->get('relacion');

    if($rel->num_rows!=0)
    {
        $relacion=array();
        foreach ($rel->result_array() as $row) 
        {
            $relacion[]=array(
                            'id'=>$row['id'],
                            'username1'=>$row['username1'],
                            'username2'=>$row['username2'],
                        );
        }
        return $relacion;
    }else{
        return false;
    }
}

在我看来:

<select name="users1" id="drop1">
<?php
    if($opciones!=false){
        foreach ($opciones as $row) {
            echo '<option value="'.$row['user_id'].'">'.$row['username'].'</option>';
        }

    }
?>
</select>
<script src="jquery.js"></script>
<script type="text/javascript">
$("#drop1").change(function(){
    $.ajax({
                type: "POST",
                url: "example.com/CI/index.php/evaluation/get_user2",
                data: "users1="+$('#drop1').val(),
                success: function(){
                    alert('it works!');
                }
            });
});
</script>

我想用控制器函数返回的选项填充第二个下拉列表,但是ajax请求没有做任何事情,所以我甚至没有达到那个部分。有人能帮我发现什么是错的吗?我已经测试了控制器和模型的功能,但它们都有效。你能告诉我如何填写第二个下拉选项吗? 非常感谢你!

1 个答案:

答案 0 :(得分:0)

我在一个项目中有一个非常相似的代码,根据用户选择的岛屿来获取一些城市。因此,如果选择更改,请加载城市并启用第二个选择。主要区别在于传递数据的方式。

<script type="text/javascript">
$("#idisla").change(function(){
        if($("#idisla").val()!=""){
            var dato=$("#idisla").val();
            $.ajax({
                type:"POST",
                dataType:"html",
                url:base_url+"admin/centros/municipios_select",
                data:"idislajs="+dato,
                success:function(msg){
                    $("#idmunicipio").empty().removeAttr("disabled").append(msg);
                    callback();
                }
            });
        }else{
            $("#idmunicipio").empty().attr("disabled","disabled");
        }
});
</script>

该功能仅查看所选islad(id)

中的城市
    function municipios_select()
    {
        //el idIsla viene dado por el value del combo islas
        $isla = $this->input->post('idislajs');
        $data['municipios'] = $this->municipios_model->obtenMunicipios($isla);
        echo $this->load->view("site/municipios_select",$data, TRUE);
    }