2013-04-03 2 views
0

Мне нужно выполнить поиск и сохранить его в поле ввода динамически. Я новичок в Ajax.Php Ajax Json поиск и заполнение поля ввода

Это то, что я сделал. ли запрос из базы данных и кодируется с использованием JSON, как показано ниже

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

Теперь есть форма с полем ввода для имени (примечание: только существующие имена из базы данных допускаются). Когда вводится имя, мне нужно выполнить поиск в Json и получить имя и отображение под полем ввода (точно так же, как поиск в Google показывает связанные поисковые запросы), и это имя следует щелкнуть после щелчка, чтобы он заполнил текст ввода с таким именем , А также изменить значение скрытого поля ввода с соответствующим id.

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

Как я уже говорил только имена в списке допускается, если не существующее имя вводится скрытый элемент не должен иметь значение или 0 в нем.

Как я могу это сделать? И он должен быть оптимизирован (быстро), поскольку он должен будет искать среди огромных данных примерно 15k-20k имен.

+2

попытка JQuery автозаполнения – bipen

+1

выше правильно, [и вот ссылка на него] (http://jqueryui.com/autocomplete/). Однако, если вы используете имена 15k-20k, вам, вероятно, следует использовать временные таблицы для хранения общих результатов поиска, поэтому вам не нужно постоянно запрашивать всю таблицу. – Ohgodwhy

+0

Я попробую это спасибо. Что вы подразумеваете под временными таблицами. Разве это не так, как запрос из таблиц? Когда в таблице есть обновление, как он будет обновлять временную таблицу? –

ответ

2

проверить эту скрипку я создал для вашего требования, я использовал автозаполнения метод

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" /> 
+0

Спасибо. Но я не мог запустить его на своем сайте (скопировал точный код, поместил javascript-код в голову и поле ввода в тело), ​​я использую JQuery 1.91, и календарь работает нормально. Также я работаю над Framework CodeIgniter, если это имеет значение. –

+0

Спасибо. Ваш скрипт работал с небольшими изменениями, извините, я не смотрел на него должным образом. –

+0

Теперь последний кусок головоломки. Как передать переменную php в javascript. Я сохранил результат JSON в $ temp, и я попробовал это внутри

Смежные вопросы