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

时间:2013-01-05 01:20:23

标签: php javascript jquery mysql autocomplete

我正在使用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.。 路径设置正确,数据库连接也是如此。

因此,哪里可能有问题?

谢谢

2 个答案:

答案 0 :(得分:1)

您不需要在自动填充的src网址上使用查询字符串。 只需编写没有查询字符串的src文件:

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

在你的php文件中你必须捕获term参数:

$q = $_GET['term'];

答案 1 :(得分:0)

解决这个问题 - 在PHP文件中必须是以JSON格式返回的数据:

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