im 使用 jqueryui 的自动完成 (http://jqueryui.com/autocomplete/#remote)来源来自"来源:"搜索.php"
此代码...
$( "#name" ).autocomplete({
source: "search.php",
minLength: 2,
select: function( event, ui ) {
log( ui.item ?
"Selected: " + ui.item.value + " aka " + ui.item.id :
"Nothing selected, input was " + this.value );
}
});
..下面的这段代码一起工作得很好!但是自动完成建议我"我的所有数据"!不像我的术语。
<?php
require('inc/tunel.php');
$keyword = $_POST['keyword'];
$respons = array();
$fetch_engine = $db->query("SELECT name FROM `engine`");
while($read_engine = $fetch_engine->fetch(PDO::FETCH_ASSOC)) {
$respons[] = $read_engine['name'];
}
echo json_encode($respons);
?>
我也在下面尝试了这段代码,我的问题解决了,但我不想在我的文档的"查看源代码"中看到我的数据!
$( "#name" ).autocomplete({
source: <?php
require('inc/tunel.php');
$respons = array();
$fetch_engine = $db->query("SELECT name FROM `engine`");
while($read_engine = $fetch_engine->fetch(PDO::FETCH_ASSOC)) {
$respons[] = $read_engine['name'];
}
echo json_encode($respons);
?>,
minLength: 2,
select: function( event, ui ) {
log( ui.item ?
"Selected: " + ui.item.value + " aka " + ui.item.id :
"Nothing selected, input was " + this.value );
}
});
您应该创建一个本地服务,该服务接受带有子字符串的参数(在我的示例中参数 q 至少包含 2 个字符)并返回带有可能标记的 json,然后将其用作自动完成的源作为 ajax 调用。
$( "#name" ).autocomplete({ 源: 函数( 请求, 响应 ) { $.ajax({ 网址: "http://yourwebservice.com/search", 数据类型: "jsonp", 数据:{ 问:请求.期限 }, 成功: 函数( 数据 ) { 响应( 数据 ); } }); }, 最小长度: 2 });