SUBBAY.RU
Вторник, 23.10.2018, 10:18
Вход на сайт

Поиск

Архив записей

Мини-чат

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


17:04
Работа с ajax, обработка xml

С появлением фреймворков, таких как: jquery, mootools, prototype — работать с ajax стало намного проще. Ваши аякс-запросы будут работать во всех браузерах, а для вызова нужной функции достаточно написать пару строчек кода.

Сейчас я покажу на примере, как работать с ajax с помощью jquery. Допустим нам надо обновлять корзину покупок для интернет-магазина. Сервер выдает нам следующий xml код.

<?xml version='1.0'?>
<response>
<id>1</id>
<price><![CDATA[<font class='price'>2460 руб.</font>]]></price>
<id>2</id>
<price><![CDATA[<font class='price'>3500 руб.</font>]]></price>
<id>3</id>
<price><![CDATA[<font class='price'>5000 руб.</font>]]></price>
</response>


Для того, чтобы содержимое элемента price воспринималось как данные, мы должны заключить его в секцию CDATA.

function post()
{
 $.post
 (
 '/shop/',
 {type:"xml"},
 someResult
 );
}

function someResult(data)
{
 var new_array=new Array;
 //Получаем коллекцию всех элементов price
 var price = $("price", data);

 $.each(price, function(i, val) {
 //Забиваем массив информацией о ценах
 new_array[i]=val.firstChild.nodeValue;
 //или записываем результат в строку
 str+=i+" - "+val.firstChild.nodeValue+"<br/>";
 });

 $("div.basket").html(str);
}

Итак мы написали 2 функции. Вторая функция автоматически выполняется, когда будет получен ответ с сервера. Переменной data присваивается значение responseText, т.е. текст ответа с сервера.

В конце скрипта мы выводим результат в div с классом basket.

Просмотров: 157 | Добавил: Rockfeller
Всего комментариев: 0
avatar
Copyright SUBBAY.RU © 2018
uCoz