我正在尝试使用ajax的基本自动补全。我很难理解结果。我对jQuery比较陌生,所以我为我的语法道歉,我对PHP比较在行。
$("#category_title").autocomplete({
source: function (request, response) {
$.ajax({
url: 'index.php?controller=AdminEvents&action=AutoComplete&variable=asdf',
type: 'GET',
success: function(data){
response(data);
}
});
},
minLength: 2
});来自控制器的响应是样本数据,实际上还没有从数据库中获得任何东西:
if ($this->isXHR())
{
//$response = "{value1:test, value2:test2}";
$response['value1'] = "test";
$response['value2'] = "test2";
$json = json_encode($response);
print($json);
}这是我感到奇怪的部分..基本上,这是可行的,并且会弹出自动补全框,但下面是它对返回的操作:

为什么?
耽误您时间,实在对不起!
发布于 2014-04-26 03:43:46
试试这个:
Jquery
$(document).ready(function(){
$('#zipsearch').autocomplete({source:'suggest_zip.php', minLength:2});
});PHP
$response = array();
$response[0]=array('label'=>'test','value'=>'test');
$response[1]=array('label'=>'test2','value'=>'test2');
echo json_encode($response);发布于 2014-04-26 06:48:27
也许这对你有帮助
jquery
$("#zipsearch").autocomplete({
source: function(req,res) {
$.ajax({
url: "index.php?controller=AdminEvents&action=AutoComplete&variable=asdf",
dataType: "json",
type: "GET",
data: {
term: req.term
},
success: function(data) {
res($.map(data, function(item) {
return {
label: item.value1,
value: item.value1
};
}));
},
error: function(xhr) {
alert(xhr.status + ' : ' + xhr.statusText);
}
});
}
});PHP
<?php
$response=array();
$response[0]['value1'] = "test";
$response[1]['value1'] = "test2";
print json_encode($response);
?>https://stackoverflow.com/questions/23301478
复制相似问题