Codeigniter中的AJAX数据发布不起作用

时间:2015-08-20 11:28:35

标签: php jquery ajax codeigniter

我在ajax帖子中遇到问题。我尝试在下拉列表中选择父类别时获取类别。但数据是发布的。

我的业务总监

 public function getcat($id)
{
    echo "sdfad";
    $cr=new Categoryrepo();
    header('Content-Type: application/x-json; charset=utf-8');
    echo(json_encode($cr->getcatbyparentid($id)));
}

我的分类模型

 public function getcatbyparentid($id)
{
    $this->db->select('id,name');
    $this->db->from('category');
    $this->db->where('parent',$id);
   return $query=$this->db->get();
}

我的ajax代码

 $(document).ready(function(){
   $("#parent").change(function(){
        var id=$('#parent').val();
        alert(id);
        $.ajax({
            type:"POST",
            url:"<?php echo base_url()?>business/getcat/"+id,
            success: function(data)
            {
                alert(data);
            }
        });
    });
});

请帮我解决一下

3 个答案:

答案 0 :(得分:0)

现在它正在...... Json返回正确的数据,如[{&#34; id&#34;:&#34; 8&#34;,&#34; name&#34;:&#34; mobile&#34;},{&#34; id& #34;:&#34; 10&#34;&#34;名称&#34;:&#34; mno`&#34;}]

现在问题是如何在下拉列表中绑定这些数据..

答案 1 :(得分:0)

试试这个:

<强>型号:

public function getcatbyparentid($id){
    $this->db->select('id,name');
    $this->db->from('category');
    $this->db->where('parent',$id);
    // just return query! In controller we will handle it.
    return $query;
}

<强>控制器:

$this->load->model("Categoryrepo");
$html = $this->Categoryrepo->getcatbyparentid($id);
$content  = "<select name='yourName'>";
foreach($html->result() as $row){
    $content .= '<option value="'. $row->column_name1 .'">' . $row->column_name2 . "</option>";
}
$content .= "</select>";
$result = array('status' => 'ok', 'content' => $content);
echo json_encode($result);

答案 2 :(得分:-1)

修改您的模型功能,如下所示:

public function getcatbyparentid($id)
{
    $this->db->select('id,name');
    $this->db->where('parent',$id);
    $query=$this->db->get('category');
    if($query->num_rows() == 0)
    {
        return FALSE;
    }
    else
    {
        return $query->result() // or return $query->row() <if you want only one value to be return>
    }
}