我在我的应用中使用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
一如既往地谢谢。
答案 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);
});