database - jquery ui 自动完成数据库

标签 database json jquery-ui autocomplete

我想使用 jQuery UI 自动完成功能从我的数据库中加载列表,但我不知道应该使用哪种方法。

我尝试使用“远程数据源”方法 http://jqueryui.com/demos/autocomplete/#remote , 但它显然不起作用。

我有以下代码:

js:

$(function() {
    $("#client").autocomplete({
    source: "nom.php",
    minLength: 2,
        select: function(event, ui) {
        alert(ui);
        }
    });
});

html:

<label for="client">Client</label>
<input name="client" id="client" class="ui-autocomplete ui-widget-content ui-corner-all" />

PHP:

$query = "SELECT nom from personne";
$result = mysql_query($query, $db);

while($row = mysql_fetch_assoc($result)) {

foreach($row as $val)
    $tab[] = $val;

}

print json_encode($tab);

无论我输入什么,它都会显示所有值,但是当我复制 nom.php 的结果并将其粘贴到源旁边时:它确实有效...

谢谢你的 Helm

最佳答案

问题是您没有在服务器端过滤结果。

当您使用本地集合时,本地集合会被自动完成功能自动过滤。

但是,当使用远程源时,源应该进行过滤。我想这是为了节省带宽,以便服务器只发送匹配的项目,而不是所有项目,让浏览器在它结束时进行过滤。

当调用您的服务器端方法时,自动完成还会发送一个名为 term 的参数,您可以使用该参数进行过滤。

您可以在您的 php 脚本中像这样获取输入的值:

 $term = trim(strip_tags($_GET['term']));

然后在您的 foreach 中,仅将与过滤器匹配的项目添加到您的集合中,然后再将其发回。

关于database - jquery ui 自动完成数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2873627/

相关文章:

mysql - 防止两个用户编辑相同的数据

database - 我如何在 sqlite 数据库中使用 Unicode 字符,例如日耳曼元音变音符?

java - 使用 json-simple 库在 Java 中解码 JSON 字符串

javascript - 如果我放置日期选择器函数,数据表根本不起作用

javascript - 使用 jquery-ui 拖放不工作

mysql - 具有挑战性的 : How to list all credit cards associated with customer name while selecting the customer name randomly or arbitrarily

ios - iPad 处于离线状态,日期设置为 2030 年,用户保存实体,现在使用基于时间戳的同步怎么办?

javascript - FormData追加json数组

php - php中echo json数据供数据表使用

jquery-ui - 如何让 jquery-ui 自动完成退出 iframe?