jquery自动完成输入字段没有任何反应

时间:2017-04-04 09:31:44

标签: javascript php jquery autocomplete

我想实现一个自动完成输入字段,但是当我开始插入一些文本时,没有任何事情发生,一秒钟就会显示“忙碌的圆圈”,就是这样。 这是我的代码: HTML>

<div class="products-inv"><?php echo $product_name  ?></div>
<input type="text" id="product_name" name="product_name" />

第一个div是测试用于显示显示良好的php变量值

jQuery和GT;

jQuery( function() {
function log( message ) {
  jQuery( "<div>" ).text( message ).prependTo( "#log" );
  jQuery( "#log" ).scrollTop( 0 );
}

jQuery( "#product_name" ).autocomplete({
  source: "../route/to/search.php",
  minLength: 2,
  select: function( event, ui ) {
    log( "Selected: " + ui.item.value + " aka " + ui.item.id );
  }
});

});

和search.php文件内容&gt;

$query = 'database data';

$ db-&gt; setQuery($ query);

$ product_name = $ db-&gt; loadResult();

错误控制台为空。

感谢您的建议

1 个答案:

答案 0 :(得分:0)

您的服务器端代码不会返回插件所需的数据。

来自jQuery autocomplete plugin关于来源选项的文档

  

使用字符串时,Autocomplete插件需要该字符串   指向将返回JSON数据的URL资源

您的search.php脚本必须将您要建议的项目返回给用户(显示在自动填充列表中)

这是一个例子:

/*term is a parameter generated by the plugin and contains
 the string the user has typed in the input*/

$_GET['term'] = isset($_GET['term']) ? $_GET['term'] : null;

//manage your own query depending on your database and preferred way for db interactions
//$query = "select product_name from product where product_name like ?";
//$term = "%{$_GET['term']}%";
//$stmt = $mysqli->prepare($query);
//$stmt->bind_param("s", $term);
//$stmt->execute();
//$result = $stmt->get_result();
$autocompleteList = [];
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
     $autocompleteList[] =  $row['product_name'];        
}
die(json_encode($autocompleteList));