<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
<script>
$(document).ready(function(){
$.ajax({
type: "POST",
url: "http://localhost:8888/index.php/welcome/get_client/",
dataType: "json",
data: "{}",
success: function(data) {
var datafromServer = data.split(",");
("#search_client").autocomplete({
source: datafromServer
});
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
});
</script>
上面是我的jQuery代码。我实际上从一个教程中得到它,但对于我的生活,我似乎无法让它工作,现在我想知道这是否是我的PHP的json结果。
我的PHP看起来像这样:
function get_client()
{
$this->db->select('name')->from('clients');
$query = $this->db->get();
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
echo json_encode($query->result());
}
当我回应它时,它看起来像这样:
[{"name":"Testing"},{"name":"Testing1"},{"name":"test11"},{"name":"test4"},{"name":"Testing21"},{"name":"Just Testing"},{"name":"testy"}]
我收到以下JavaScript错误:
TypeError: Result of expression 'data.split' [undefined] is not a function.
不确定该怎么做。
答案 0 :(得分:1)
数据结果没有属性d
,因此data.d.split(",");
为空。
而是尝试:
$.ajax({
type: "POST",
url: "http://localhost:8888/index.php/welcome/get_client/",
dataType: "json",
data: "{}",
success: function(data) {
("#search_client").autocomplete({
source: data
});
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
编辑:实际上没有必要拆分数据....
答案 1 :(得分:0)
您可能也想检查您的响应的mime类型,它应该是text / json,或者我认为是application / json。
编辑我倾向于application / json,请参阅the right JSON content-type
答案 2 :(得分:0)
这一次,问题很简单:我把美元符号留下了:
("#search_client").autocomplete({