【问题标题】:Php Ajax Json search and fill the input fieldPhp Ajax Json 搜索并填写输入字段
【发布时间】:2013-03-24 15:44:28
【问题描述】:

我需要执行搜索并将其动态保存在输入字段中。我是 Ajax 新手。

这就是我所做的。 从数据库查询并使用json编码如下

[{"id":"1","name":"Jack"},{"id":"2","name":"Ace"},{"id":"3","name":"Test"}]

现在有一个带有名称输入字段的表单(注意:只允许来自数据库的现有名称)。输入名称时,我需要在 Json 中执行搜索并获取名称并显示在输入字段下方(谷歌搜索如何显示相关搜索字词),一旦单击该名称应该是可点击的,它应该使用该名称填充输入文本.并更改具有相应 id 的隐藏输入字段的值。

<input id="name" type="text" name="name">
<input id="id" type="hidden" name="id">

正如我之前所说,仅允许列表中的名称,如果输入不存在的名称,则隐藏元素中不应包含值或 0。

我怎样才能完成它?而且它应该被优化(快速),因为它必须在大量数据中搜索,比如大约 15k-20k 个名字。

【问题讨论】:

  • 尝试 jquery 自动完成
  • 以上是正确的,and here's the link to it。但是,如果您使用 15k-20k 个名称,那么您可能应该使用临时表来存储常见的搜索结果,这样您就不必一遍又一遍地查询整个表。
  • 我会试试的,谢谢。临时表是什么意思。这和从表中查询不一样吗?当表中有更新时,它将如何更新临时表?
  • jquery 自动完成功能,谢谢

标签: php jquery ajax json search


【解决方案1】:

检查我为您的要求创建的这个小提琴,我使用了自动完成方法

http://jsfiddle.net/X85LT/

var src = [{
"label": "Jack",
    "value": "1"
}, {
    "label": "back",
        "value": "2"
}, {
    "label": "tera",
        "value": "3"
}, {
    "label": "judo",
        "value": "4"
}];

$('.name').change(function() {
 $('.value').val(0);
});

$(".name").autocomplete({
    source: src,
    select: function (event, ui) {
        event.preventDefault();
        this.value = ui.item.label;
        $('.value').val(ui.item.value);
    }
});

// html

<input type="text" class="name" />
<input type="text" class="value" />

【讨论】:

  • 谢谢。但我无法在我的网站上运行它(复制了确切的代码,将 javascript 代码放在头部,将输入字段放在正文中),我使用的是 Jquery 1.91,日历工作正常。如果这有什么不同的话,我也在研究 CodeIgniter 框架。
  • 谢谢。您的脚本只进行了一些更改,抱歉我没有正确查看它。
  • 现在是最后一块拼图。如何将 php 变量传递给 javascript。我已将 JSON 结果保存在 $temp 中,并在
  • 代码很好,这里的问题是你的 json 正在获取键 'name' 和 'id' 而不是 'label' 和 'value'。尝试创建具有标签和价值的 json,它会正常工作。
猜你喜欢
  • 1970-01-01
  • 2014-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-15
相关资源
最近更新 更多