【发布时间】:2015-10-14 19:32:27
【问题描述】:
控制器代码:
public function auto_search() {
$search_data = $this->input->post('search_data');
//print_r($search_data); die();
$query = $this->search_model->autocomplete($search_data);
print_r($query); die();
foreach ($query->result() as $row):
echo $row->uid ;
echo $row->name ;
endforeach;
}
javascript:
<script type="text/javascript" src="js/jquery-1.8.0.min.js"></script>
<script type="text/javascript">
function ajaxSearch() {
var input_data = $('#search_data').val();
$.ajax({
type: "POST",
url: "/search/auto_search",
data: {search_data:input_data},
success: function(data1) {
alert(data1);
if (data1.length > 0) {
$('#suggestions').show();
$('#autoSuggestionsList').addClass('auto_list');
$('#autoSuggestionsList').html(data1);
}
}
});
}
</script>
在控制器中,当我打印 print_r($search_data); die(); 的 search_data 时,我没有得到任何结果。
我认为ajax调用没有进入控制器请为此提供解决方案
此外,当我在控制器中回显查询 print_r($query) ; 时,我没有得到任何结果。自动搜索也不起作用。请为此提供解决方案。
【问题讨论】:
-
你需要从 php 传回一个
JSON,而不仅仅是一个普通的echo。使用结果和echo json_encode($resultArray);创建一个数组,以便 JQuery 理解输出。 -
@AlexTartan 你的意思是在控制器中??如何用结果创建一个数组并回显??
-
类似
$res = array(); foreach ($query->result() as $row){ $res[] = array('id'=>$row->uid, 'name'=>$row->name);}echo json_encode($res);
标签: php jquery ajax codeigniter