2013-01-05 49 views
0

我使用jQuery自动完成插件的工作成果,这是我的指标: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.。 路径设置正确,数据库连接也是如此。

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

谢谢

+0

当你访问search.php时,你看到任何结果吗?q =直接的东西? –

+0

是的,我看到空白页上的结果。 – user984621

回答

1

你并不需要使用查询字符串上自动完成的src网址。 只要写你的src文件,而无需查询字符串:

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

而在你的PHP文件,你必须捕捉项参数:

$q = $_GET['term']; 
+0

这不幸的是不适合我... – user984621

0

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

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