[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Динамический поиск
pavel24071988
Здравствуйте. (еще раз наверное smile.gif )

Я вот что хочу сделать: При заходе на страницу -> запрос в БД (responseXML ответ) -> данные записываются в Массив, из которого я в дальнейшем собираюсь тянуть значения.

User что-то вводит в <input type = "text"/> - или во что-то подобное, и парралельно с заполнением букавами inpyt(a) выводится результат запроса (по введенному) из Массива (мне кажется это быстрее чем к базе, у меня этот список значений равен 2000 строк по 2(id и name) каждая)

Потом пользователь могбы выбирать из результата поиска значение, щелкать по нему и т.д.

Короче как Google, Yandex только база на клиенте.

Я действительно ничего похожего по поиску не нашел на форум или, что скорее, неправильно искал.

Трудность у меня на этапе реализации сего затеянного мною чуда состоит в том что КУДА будут выходить ответы от Массива что бы потом пользователь по ним ещё мог и нажимать???


Заранее спасибо.



Спустя 13 минут, 56 секунд (5.09.2011 - 15:18) pavel24071988 написал(а):
jQuery на данном этапе не используется, решили "пока" его не трогать.

Спустя 21 минута, 27 секунд (5.09.2011 - 15:40) ApuktaChehov написал(а):
Вы же уже делал и динамический селект. Вот и сейчас так-же. У вас есть массив с данными. Юзер вводить что то в инпут, а снизу инпута появляется типа селект, в котором выбираются варианты того, что юзер выбрал.

Так что ли?

Спустя 3 минуты, 29 секунд (5.09.2011 - 15:43) Winston написал(а):
Посмотри примеры реализации, особенно "Поиск с использованием AJAX".

Спустя 19 минут, 38 секунд (5.09.2011 - 16:03) pavel24071988 написал(а):
Winson
Я все хочу реализовать посредством JS на клиенте дабы это проще, меньше кода, и еще много плюсов. - если это конечно возможно blink.gif

ApuktaChehov
Т.е как я и предполагал - это должна быть конструкция : сверху type = "text", сразу под ним type = "select"?

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

Про текст и селект понял, там будет поиск по событию onkeypress ?

Спустя 2 минуты, 8 секунд (5.09.2011 - 16:05) pavel24071988 написал(а):
Извините.
А как это осуществлено в яндексе например, я не про запрос-ответ, а про вывод данных?

Спустя 5 минут, 24 секунды (5.09.2011 - 16:10) Winston написал(а):
Цитата (pavel24071988 @ 5.09.2011 - 16:03)
Я все хочу реализовать посредством JS

Без использования PHP? blink.gif
В примерах которые я тебе дал, реализации посредством JS

Спустя 52 секунды (5.09.2011 - 16:11) moskitos80 написал(а):
Я думаю он имел ввиду, что то типа этого: пример Там где "поиск отелей", поле "Введите город:", но там я вешал обработчик на событие onkeydown, и если кол - во символов в поле больше 3-х, то при каждом последующем нажатии посылаются запросы в базу, а она выдаёт JSON. Потом создаётся стилизованный под выпадающий список див, с результатом, из которого можно выбрать значение. При посещении около 1000 чел в день всё работает без тормозов. В принципе я там код не сжимал, можешь поглядеть реализацию, открыв html-код страницы и найди там по поиску "var sugest = "

Спустя 1 минута, 9 секунд (5.09.2011 - 16:12) Winston написал(а):
Цитата (pavel24071988 @ 5.09.2011 - 16:05)
А как это осуществлено в яндексе например, я не про запрос-ответ, а про вывод данных?

Вот же пример, там идет запрос -> получается ответ -> идет вывод информации.

Спустя 12 минут, 40 секунд (5.09.2011 - 16:25) pavel24071988 написал(а):
Winston
Да я знаю что XMLHttpRequest() это JavaScript dry.gif

Я вот думаю про цикл создания option как писал Apukta, Значение введенное User(om) в type = "text" Проверяется (цикл for) на совпадение с тегами XML строки (моей базы) хранящейся на КЛИЕНТЕ !!! + я думаю чуть чуть регулярных выражений наверное. и селект будет создаваться по onkeypress наверное?

Вообщем вот как то так я хочу.

Спустя 1 час, 14 минут, 21 секунда (5.09.2011 - 17:39) ApuktaChehov написал(а):
pavel24071988 - я не уверен насчет удачности решения о заранее хранящимся у клиента данных. Утверждать не могу, но не уверен, что так будет лучше. Вдруг придется выдавать больше информации? Всю ее грузить?

Честно, по вашему принципу я не делал. Обычно, гонял запросы к БД каждый раз.

По поводу реализации. То да, сверху сидит инпут, а снизу селект. Когда юзер вводить данные, запрос отправляется на сервер, а на ответ формируется селект с данными. В принципе могу предоставить рабочий скрипт. Но он написан мною давно, и сейчас я бы его переделал, но он работает и может вам помочь. Если интересно, дайте знать. wink.gif

Спустя 14 часов, 27 минут, 20 секунд (6.09.2011 - 08:07) pavel24071988 написал(а):
ApuktaChehov
"Когда юзер вводить данные, запрос отправляется на сервер" а если поизвращаться и не делать "через сервер" = всё на клиенте! JS может же обработывать данные laugh.gif главное ему их предоставить

option(ы) в selecte создаются же на клиенте - главное в них что-то запихать, вот это что - то и будет результатом прохода цикла по всем тегам моей "загрузившейся на клиент (базе)" XML строки и поиска в ней (как-то) совпадений по буквам, введеным пользователем?

Спустя 26 минут, 10 секунд (6.09.2011 - 08:33) pavel24071988 написал(а):
Теперь остается только полазить с поиском по моей XML строке.

Тут же нужно использовать метод getElementsByTagName

Что - то типа:

var strxml = ('моя XML строка - база');
var tegsname = strxml.getElementsByTagName('name').nodeValue;


Где с помощью регулярного выражения и буде подставляться соответствие к переменной tegsname

Я провильно рассуждаю? Или же это и в правду бредовая идея. Я уж сомневаться стал :blink:

Спустя 44 минуты, 47 секунд (6.09.2011 - 09:17) ApuktaChehov написал(а):
pavel24071988 - это неплохая идея, когда данных мало. Если их будет много, то грузить все это на страницу будет тяжело и долго. Вы должны это понять и осознать. Если у вас список из 20 позиций, то конечно смысл имеется, делать как вы говорите. Тогда непонятно, зачем вам вообще xml, передайте одно строкой значения через запятую. И парсите себе на здоровье.

Спустя 22 минуты, 38 секунд (6.09.2011 - 09:40) pavel24071988 написал(а):
Список из 1700 позиций - это производители, он увеличиваться врят ли будет, так как кудаж больше производителей!

XML мне возвращается посредством ResponseXML. Через XMLHttpRequest у меня много что на данном этапе реализовано, ну и там же для кучи вывод из базы XML строки производителей.

"Тогда непонятно, зачем вам вообще xml"
сейчас опишу:
Через JS запрос к серверу (в формате XML строки) -> на сервере данную строку parse и прочая обработка (что-то еще в сессии запихиваю) -> Через SOAPClient коннектюсь к EAS (у) через адрес собственно удаленного EAS(a) laugh.gif , передаю ему отформатирофанную сервером XML(применив метод) -> получаю на сервер ответ (XML строка! (вы мне кстати помагали месяц назад с этой POST передачей XML)) -обрабатываю а сервере XML -> "отдаю на JS" = требуемая XML строка.

Спустя 2 минуты, 14 секунд (6.09.2011 - 09:42) pavel24071988 написал(а):
У меня просто EAS данные возвращает только XML Там какая - то фишка с Blob (ами) <----> PowerBuilder

Спустя 1 час, 45 минут, 13 секунд (6.09.2011 - 11:28) ApuktaChehov написал(а):
1700 позиций будут грузится на клиент?
По моему это многовато.

Спустя 1 час, 24 минуты, 53 секунды (6.09.2011 - 12:52) pavel24071988 написал(а):
И долговато... (вообще-то)

Спасибо за совет - буду делать через XMLHttpRequest
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.