0

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

因此,哪里可能出现问题?

谢谢

4

2 回答 2

1

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

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

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

$q = $_GET['term'];
于 2013-01-05T01:32:32.017 回答
0

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

while($row=mysql_fetch_array($data))
{
    $result[] = $row['tag'];
}
echo json_encode($result);
于 2013-01-05T02:02:18.167 回答