【问题标题】:How to use javascript autocomplete with php remotely如何远程使用 php 的 javascript 自动完成功能
【发布时间】: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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-04
      • 2022-08-15
      • 2012-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多