首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JQuery自动完成,它继续加载,但没有达到该功能

使用JQuery自动完成,它继续加载,但没有达到该功能
EN

Stack Overflow用户
提问于 2015-05-21 00:29:35
回答 1查看 78关注 0票数 0

我使用JQuery自动完成通过AJAX调用php函数,这是我的代码:

代码语言:javascript
复制
$("#client").autocomplete("get_course_list.php",
{
  width: 260,
  matchContains: true,
  selectFirst: false
});

我在屏幕上看到的是加载图标,但它没有到达php函数,我甚至尝试在php函数中放置一个模具(“reach”)来检查。

我已经在IE10和火狐上测试过了,它们都给出了相同的错误。

下面是我所调用的php文件中部分的开头:

代码语言:javascript
复制
    die("REACH");
    $q = strtolower($_GET["q"]);
    if(!$q) return;
    $qry      = "SELECT client_id FROM cms_users WHERE id = '".$_SESSION['User']['id']."'";
    $SelClids = mysql_fetch_array(mysql_query($qry));
    $SelClids = $SelClids['client_id'];
    ....
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-21 00:42:50

自动完成小部件可以有以下源代码。

阵列

  1. 字符串数组:[ "Choice1", "Choice2" ]
  2. 具有labelvalue属性[ { label: "Choice1", value: "value1" }, ... ]的对象数组

label属性显示在“建议”菜单中。当用户选择项时,该值将被插入到输入元素中。如果只指定了一个属性,则这两个属性都将使用,例如,如果您只提供值属性,则该值也将用作标签。

字符串

当使用字符串时,Autocomplete插件期望该字符串指向将返回JSON数据的URL资源。它可以在同一个主机上,也可以在另一个主机上(必须提供JSONP)。Autocomplete插件不过滤结果,而是添加了一个查询字符串,其中添加了一个术语字段,服务器端脚本应该使用该字段来过滤结果。例如,如果将源选项设置为"http://example.com",并且用户键入foo,则会向http://example.com?term=foo发出GET请求。数据本身可以是与上面描述的本地数据相同的格式。

函数

第三个变体是回调,它提供了最大的灵活性,可用于将任何数据源连接到Autocomplete。回调得到两个参数:一个请求对象,带有一个术语属性,该属性引用当前文本输入中的值。例如,如果用户在城市字段中输入"new“,自动完成项将等于"new”。响应回调,它需要一个参数:要向用户建议的数据。这些数据应该根据提供的术语进行过滤,对于简单的本地数据可以采用上述任何格式。在提供自定义源回调以处理请求期间的错误时,这一点非常重要。即使遇到错误,也必须始终调用响应回调。这确保小部件始终具有正确的状态。

在本地过滤数据时,可以使用内置的$.ui.autocomplete.escapeRegex函数。它将使用单个字符串参数并转义所有正则字符,从而使结果安全地传递到新的RegExp()

回到你的问题

  1. 您需要给出文档http://www.example.com/foo.php的完整路径
  2. 您需要以JSON array的形式返回数据。

示例:

json_encode($your_db_data);

接受字符串数组和对象数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30362594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档