如何通过 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);
?>

我做错了什么,我该如何解决?

您正在使用带有自动完成功能的自定义数据。如果这样做,您需要覆盖 selectfocus 函数,如 the documentation.

中所述

不,我在查询中有一个愚蠢的语法错误,其余的工作正常。所以这是一个有效的代码。

谢谢!