【发布时间】:2015-07-03 20:41:28
【问题描述】:
我正在尝试创建一个具有自动完成功能的简单搜索表单。自动完成的值取自不同服务器上的数据库。 我有这个:
<form action="smth.php" method="POST">
<label>Tracking Tag</label>
<input class="form-control" type="text" name="tag" id="tag" />
<button class="submit btn btn-success" type="submit" name="search" value="Show">Show</button>
</form>
我的小javascript是:
$("#tag").autocomplete({source: "suggest_tag.php", minLength:1});
现在我有了这个被调用的Suggest_tag.php 文件。
<?php
if ( !isset($_REQUEST['term']) )
exit;
$data = file_get_contents("http://xxx/suggest_tag.php? tag=".$_REQUEST["term"]);
echo $data;
?>
http/xxx/suggest_tag.php 中的脚本如下:
<?php
if ( !isset($_GET['tag']) )
exit;
$conn = mysql_connect(**credentials**) or die('Not able to connect to db');
$query = "select query;";
$result = mysql_query($query) or die(mysql_error());
$data = array();
if ( $result && mysql_num_rows($result) )
{
while( $row = mysql_fetch_array($result, MYSQL_ASSOC) )
{
$data[] = array("label"=>$row['tag'], "value"=>$row["tag"]);
}
}
echo json_encode($data);
?>
我做错了什么,我该如何解决?
【问题讨论】:
-
您是否遇到任何错误,或者您的输出是否错误?
-
我没有收到自动完成建议,即使我知道数据库中有这样的记录。
-
我猜你的源必须是数据,而不是url,所以你必须对php页面进行ajax调用,然后返回数据,然后你就可以使用它了。跨度>
-
你检查页面是否有正确的输出?
-
@Jerodev,我检查了我的 http/xxx/suggest_tag.php 页面。对于 http/xxx/suggest_tag.php?cee 并输出: [{"label":"CEE 2015","value":"CEE 2015"},{"label":"CEE 2015","价值":"CEE 2015"}].
标签: javascript php autocomplete cross-domain