源文件存在Jquery自动完成问题

Jquery Autocomplete issue with source file

本文关键字:成问题 存在 Jquery 源文件      更新时间:2023-09-26

我正在尝试使用jQuery UI提供的自动完成小部件。这是我的代码,但它似乎不起作用。

我的标题中有以下内容:

<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.min.js"></script>
<script src="/js/auto-complete.js"></script>

然后我有我的表格与文本输入:

<input type="text" id="keyword" placeholder="Start typing to search..." name="keyword"/>

auto-complete.js文件:

$(document).ready(function() {
    $('#keyword').autocomplete({
        source: 'suggest_name.php',
        minLength: 2
    });
});

suggest_name.php文件:

echo "suggest name";
die();

什么也没发生。有什么建议吗?

注意:我只是试着给它提供一个充满静态信息的数组,它正在工作,但我不知道为什么它没有检测到我的PHP脚本作为数据源。

以下是不够的:

echo "suggest name";

阅读jQuery UI自动完成的source参数的文档,该部分显示:

数组:数组可用于本地数据。支持两个格式:

  • 字符串数组:[ "Choice1", "Choice2" ]
  • 具有标签和值属性的对象数组:[ { label: "Choice1", value: "value1" }, ... ]

标签属性显示在建议菜单中。该值将当用户选择项目时被插入到输入元素中。如果只指定了一个属性,它将用于两个属性,例如,如果仅提供值属性,该值也将用作标签

[…]

String:当使用字符串时,自动完成插件希望字符串,指向将返回JSON数据的URL资源。[…]数据本身可以是以与上述本地数据相同的格式。

长话短说,至少你必须输出这样的东西:

header("Content-type: application/json");
echo json_encode(array("suggest name"));

输出:

["suggest name"]

您需要一个绝对URL到您的PHP程序,该程序在参数中生成自动完成数据。

请与浏览器开发工具核实是否发送了xhr请求并收到了正确的HTTP响应。

首先检查您的请求是否真的被发出,以检查自动完成是否绑定到您的输入。

一旦您明确表示请求实际上正在进行:

您只返回了一个字符串,而文档声明您需要返回一个字符串数组["string","string2"]或一个带有标签和值的对象数组:[{label: "label", value: "value"}, {label: "label2", value: "value2"}]

文档是有原因的,它有完美的例子来说明一切是如何工作的。