我尝试使用带有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);
}
这里有一个对我来说很奇怪的部分..基本上,这个工作并弹出自动完成框,但这里有什么回复:
为什么?
谢谢你的时间!
答案 0 :(得分:0)
试试这个:
<强> 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);
答案 1 :(得分:0)
可能这会帮助你
<强> 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);
?>