jQuery -自动完成不显示结果从数据库

jQuery - autocomplete doesn't display results from database

本文关键字:显示 结果 数据库 jQuery      更新时间:2023-09-26

我正在使用jQuery自动完成插件,这是我的索引:

<script> 
  $(document).ready(function(){
    $("#tag").autocomplete({source: "./search.php?q="+ $("#tag").val()});
   });
</script>
<form action="search.php" method="post" class="form-inline search">
  <input type="text" id="tag" name="tag">
  <input type="submit" class="btn" value="Search" />
</form>

search.php中,与index.php在同一个文件夹中,如下所示:

 include 'config.php';
 $q=$_GET['q'];
 $my_data=mysql_real_escape_string($q);
 $sql="SELECT * FROM tags WHERE tag LIKE '%$my_data%'";
 $result = mysql_query($sql) or die(mysql_error());
 if($result)
 {
  while($row=mysql_fetch_array($result))
  {
   echo $row['tag']."'n";
  }
 }

当我开始打字时,自动补全没有给我任何建议。在JS控制台也没有错误。在代码中显示的只是No search results.。路径设置正确,数据库连接也正确。

那么,哪里会有问题呢?

谢谢

您不需要在自动完成的src url上使用查询字符串。只写你的src文件没有查询字符串:

$("#tag").autocomplete({source: "./search.php"});

在php文件中你需要捕获术语参数:

$q = $_GET['term'];

解决方法- PHP文件中必须以JSON返回数据:

while($row=mysql_fetch_array($data))
{
    $result[] = $row['tag'];
}
echo json_encode($result);