如何通过 php 远程使用 javascript 自动完成
How to use javascript autocomplete with php remotely
我正在尝试创建一个具有自动完成功能的简单搜索表单。自动完成的值取自不同服务器上的数据库。
我有这个:
<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);
?>
我做错了什么,我该如何解决?
您正在使用带有自动完成功能的自定义数据。如果这样做,您需要覆盖 select
和 focus
函数,如 the documentation.
中所述
不,我在查询中有一个愚蠢的语法错误,其余的工作正常。所以这是一个有效的代码。
谢谢!
我正在尝试创建一个具有自动完成功能的简单搜索表单。自动完成的值取自不同服务器上的数据库。 我有这个:
<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);
?>
我做错了什么,我该如何解决?
您正在使用带有自动完成功能的自定义数据。如果这样做,您需要覆盖 select
和 focus
函数,如 the documentation.
不,我在查询中有一个愚蠢的语法错误,其余的工作正常。所以这是一个有效的代码。
谢谢!