Codeigniter在我的视图中返回并显示由jquery调用的模型函数的数组结果

时间:2013-05-20 13:26:46

标签: jquery database codeigniter

我在我的应用中使用codeigniter。我有一个自动完成下拉列表,在选择时调用控制器函数来显示有关所选下拉值的更多详细信息。

我已成功使用以下语法返回单个结果,但现在需要将整个数组返回到视图并显示每个返回的多行列。

因此单个结果的语法是:

控制器

function get_link_load_options(){

    $this->load->model('Sales_model');
    if (isset($_POST['data'])){
        $q = strtolower($_POST['data']);
        $data = $this->Sales_model->get_link_load_options($q);
        $this->output->set_content_type('application/json')->set_output(json_encode($data));
    }
}

模型

function get_link_load_options($q){
    $this->db->select('TotalCubes,CustomerName,TotalCubes, TreatedCubes');
    $this->db->where('CustomerOrderID', $q);
    $query = $this->db->get('Customer_Order_Summary');
    if($query->num_rows > 0){
        foreach ($query->result_array() as $row){
            $row_set[] = htmlentities(stripslashes($row['TotalCubes'])); 
       return $row_set;
    }
  }

查看Jquery

   $.post('get_link_load_options', {data:substr[1]},function(result) { 
   $('input[name^="totalcubes"]').val(result[0]);
   }); 

那么如何调整/更改此选项以使用get_link_load_options函数结果填充我的视图。

这是最好的方法还是应该使用其他方法? 是否可以传递整个数组$query,如果是,我如何使用jquery / javascript将数组渲染到表中?

当我执行上述操作时,我得到了回复: Message: json_encode(): type is unsupported, encoded as null

一如既往地谢谢。

1 个答案:

答案 0 :(得分:1)

你不需要json,你可以这样做。只需创建一个在第一个位置为空的div。您的jquery结果将填充它,就像这样

控制器

function get_link_load_options(){
    $this->load->model('Sales_model');
    if (isset($_POST['data'])){
        $q = strtolower($_POST['data']);
        $data['result'] = $this->Sales_model->get_link_load_options($q);
        $this->load->view('myview',$data);
    }
}

JQuery的

$.post('get_link_load_options', {data:substr[1]},function(result) { 
   $('#div_id').html(result);
});