0

我在我的应用程序中使用 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

一如既往地感谢。

4

1 回答 1

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);
}); 
于 2013-05-20T14:44:02.470 回答