javascript - jquery - 使用 PHP 自动完成

标签 javascript php jquery html mysqli

我尝试使用 jQuery-UI 自动完成搜索字段,但使用 PHP 作为源时遇到问题。当我使用变量作为源时一切正常。

JS:

$(function () {
    var data = [
      "ActionScript",
      "AppleScript",
      "Asp",
      "BASIC",
      "C",
      "C++",
      "Clojure",
      "COBOL",
      "ColdFusion",
      "Erlang",
      "Fortran",
      "Groovy",
      "Haskell",
      "Java",
      "JavaScript",
      "Lisp",
      "Perl",
      "PHP",
      "Python",
      "Ruby",
      "Scala",
      "Scheme"
    ];
    $("#tags").autocomplete({
        source: data
    });
});

但是一旦我使用 PHP 脚本,即使它只是保存一个数组并对其进行编码,它也不会。

JS:

$(function () {
    $("#tags").autocomplete({
        source: 'suggest_search.php'
    });
});

suggest_search.php:

$data = [
      "ActionScript",
      "AppleScript",
      "Asp",
      "BASIC",
      "C",
      "C++",
      "Clojure",
      "COBOL",
      "ColdFusion",
      "Erlang",
      "Fortran",
      "Groovy",
      "Haskell",
      "Java",
      "JavaScript",
      "Lisp",
      "Perl",
      "PHP",
      "Python",
      "Ruby",
      "Scala",
      "Scheme"
    ];
echo json_encode($data);

我只是想不通为什么,有什么建议吗?

编辑:所以原来的问题已经解决了,只是一个链接问题。

现在我想从SQL中获取数据,但是我想不出我又在哪里出错了..

我的 php 代码:

<?php
header('Content-Type: application/json');
include(scripts/db_connect.php);
$searchTerm = filter_input(INPUT_GET, 'term');
$select = mysqli_query($db_mysqli, " SELECT * FROM $db_table WHERE top_name like '%$searchTerm%'");
while ($row=mysqli_fetch_array($select)) 
{
 $data[] = $row['top_name'];
}
echo json_encode($data);

和相关的html代码:

<div id="ui-widget">
                    <label for="tags"></label>
                    <input id="tags" class="search_field" type="search" name="suche" maxlength="255">
</div>

最佳答案

这并没有那么简单,我真的不知道为什么,但是当你绑定(bind)到一个本地数组时,一个简单的数组就可以工作,但是如果你绑定(bind)到一个远程源,你需要给出一个结果此结构的对象数组:

{
    "id":"Tetrao tetrix",
    "label":"Black Grouse",
    "value":"Black Grouse"
}

查看我从 this page 中获取的结果:

https://jqueryui.com/resources/demos/autocomplete/search.php?term=rou

所以你的结果应该匹配该结构才能工作,因为我在 api docs 中找不到与数据结构相关的任何内容。 .

关于javascript - jquery - 使用 PHP 自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44459964/

相关文章:

javascript - foreach 图像数组中的元素

javascript - 单击时使用 jQuery 和 AJAX 更改页面内容

php - 如何在jquery中编写php代码

javascript - 将 HTML 值与 jquery 输入值进行比较

javascript - 如何使用选择插件选择带有flot的周末?

javascript - 使用回车键和 "Submit"按钮输入密码 (HTML/Javascript)

javascript - 为什么 history back 在 Firefox 中的 <a> onclick 上不起作用?

php - 当绑定(bind)变量的数量是动态的时,解决绑定(bind)变量和标记之间的不平等问题。 (PDO/PHP MySQL)

php - PHP 的数字验证码

javascript - jquery验证多个文本字段中的出生日期