我正在使用jquery aucomplete
https://github.com/devbridge/jQuery-Autocomplete/
但它适用于local
,并在使用server side script
错误img
我的代码就像
HTML
<div>
<input type="text" name="country" id="autocomplete"/>
</div>
<div id="selection"></div>
CSS
.autocomplete-suggestions { border: 1px solid #999; background: #FFF; cursor: default; overflow: auto; }
.autocomplete-suggestion { padding: 2px 5px; white-space: nowrap; overflow: hidden; }
.autocomplete-selected { background: #F0F0F0; }
.autocomplete-suggestions strong { font-weight: normal; color: #3399FF; }
SCRIPT
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="jquery.autocomplete.js"></script>
<!-- Above js file can be downloaded from
https://github.com/devbridge/jQuery-Autocomplete/blob/master/src/jquery.autocomplete.js
-->
<script type="text/javascript">
$('#autocomplete').autocomplete({
serviceUrl: 'search.php',
onSelect: function(suggestion) {
$('#selction-ajax').html('You selected: ' + suggestion.value + ', ' + suggestion.data);
}
});
</script>
PHP页面脚本 search.php
<?php
if($_REQUEST['query']=='a')
{
echo json_encode(array('AD'=>'Adrew','AU'=>'Australia'));
}
if($_REQUEST['query']=='b')
{
echo json_encode(array('BR'=>'Brazil','BA'=>'Bangladesh'));
}
if($_REQUEST['query']=='i')
{
echo json_encode(array('IN'=>'India','IND'=>'Indonasia'));
}
return;
?>
感谢您的任何建议。
答案 0 :(得分:4)
我遇到了问题
suggestions.length
suggestion.value
。所以下面的json encoding
工作正常
echo json_encode(array('suggestions'=>array(array('data'=>'AU','value'=>'Australia'),array('data'=>'IN','value'=>'India'))));
完整的PHP代码
<?php
if($_REQUEST['query']=='a')
{
echo json_encode(array('suggestions'=>array(array('data'=>'AU','value'=>'Australia'),array('data'=>'IN','value'=>'India'))));
}
else if($_REQUEST['query']=='b')
{
echo json_encode(array('suggestions'=>array(array('data'=>'BR','value'=>'Brazil'),array('data'=>'BA','value'=>'Bangladesh'))));
}
else if($_REQUEST['query']=='i')
{
echo json_encode(array('suggestions'=>array(array('data'=>'IN','value'=>'India'),array('data'=>'IND','value'=>'Indonesia'))));
}
else
echo json_encode(array('suggestions'=>array(array('data'=>'NF','value'=>'Not Found'))));
return;
?>
感谢所有人的宝贵时间 再次感谢。
答案 1 :(得分:1)
您在PHP中回显错误的格式,自动完成需要接收具有value
属性或label
属性或两者的对象数组。
你可以做这样的事情
echo json_encode(array('value' => 'AU', 'label' => 'Australia'));