AJAX PHP поиск
- 30 декабря 2008
- Книжная Полка
Функцию getXmlHttp() мы уже с вами разбирали, а вот на функции search() остановимся по подробнее.
Сразу забегу чуток вперед, так как нужно знать в каком формате нам приходят XML данные, перед тем как их обрабатывать. Кусок результатов запроса:
Внимание! У Вас нет прав для просмотра скрытого текста.
Корневое поле здесь у нас searchresults. От него следует ветка entry – запись. В записи мы имеем title – заголовок статьи, и content – небольшая часть самой статьи. Вернемся к нашему AJAX скрипту и пройдемся по порядку.
Внимание! У Вас нет прав для просмотра скрытого текста.
Здесь мы в переменную sSearch помещаем запрос, введенный в текстовое поле с идентификатором search_input, а так же проверяем его длину на значение больше 3-х (глупо искать по 3-м символам…).
Внимание! У Вас нет прав для просмотра скрытого текста.
Создали объект xmlHttp с помощью функции getXmlHttp().
Внимание! У Вас нет прав для просмотра скрытого текста.
Очищаем предыдущие результаты поиска, при их наличии (блок search_results), а так же выводим строку «ждите, ищу» (помните?). Объект obj нам пригодится в дальнейшем для размещения новых результатов поиска.
Внимание! У Вас нет прав для просмотра скрытого текста.
Здесь, уже известный нам, обработчик событий («слушатель»), и при состоянии объекта xmlHttp равное 4 (готов) начинаем обработку данных.
Внимание! У Вас нет прав для просмотра скрытого текста.
Для начала можно спрятать надпись «ждите». Затем, создаем новый объект xmlDoc и записываем в него весь массив XML данных имеющих отношение к ветке entry (т.е. те данные, которые лежат внутри этой ветки (title, content)).
Внимание! У Вас нет прав для просмотра скрытого текста.
Здесь мы в цикле прогоняем каждый элемент массива и создаем для него новый элемент div. Но, перед тем, как прикрепить (приклеить) новый элемент в поле результатов, нужно его наполнить данными:
Внимание! У Вас нет прав для просмотра скрытого текста.
В переменные sTitle и sContent записываем соответствующие данных из XML массива (title, content). Этот метод мы уже рассматривали в предыдущих уроках (ссылки на предыдущие уроки). Следом, записываем эти значения в наш новый элемент (для заголовка статьи используется тэг h1).
Внимание! У Вас нет прав для просмотра скрытого текста.
Ну и здесь мы, наконец, приклеиваем наш новый элемент в поле результатов поиска (см. выше obj search_results). Обработчик событий готов, закрываем все операторные скобки и нам остается написать сам запрос.
Внимание! У Вас нет прав для просмотра скрытого текста.
