AJAX и UMI.CMS — это просто. JSON
Вам наверняка известно, что вы можете получить любую страницу, объект, макрос(функцию) в json-формате(если не знали, я отрываю вам глаза ;)). С json и UMI очень просто работать, но к сожалению, об этом мало где написано... Исправляю ситуацию. Кстати, не так давно я написал стать про UDATA/UPAGE
В этом примере, давайте попробуем запросить информацию по корзине пользователя.
В отличии от примера с UDATA/UPAGE, не нужно ничего трансформировать.
Нужно к строке URL добавить .json и dataType установить json. Далее обработать результат, который вернет сервер.
$.ajax({
url: '/udata/emarket/cart/.json',
type: "get",
dataType: 'json',
async: true,
timeout: 30000,
beforeSend: function (data) {
// Функция выполняется перед отправкой AJAX запроса на сервер
},
success: function (data) {
var html = '';
html += '<div class="product-info">';
html += '<div>Товаров в корзине: ' + data.summary.amount + ' шт. товаров</div>';
html += '<div>На сумму: ' + data.summary.price.actual + ' ' + data.summary.price.suffix + '</div>';
html += '<hr />';
html += '<div>У вас в корзине:</div>';
html += '<ul>';
for (i in data.items.item) {
var item = data.items.item[i];
html += '<li>' + item.name + '</li>';
}
html += '</ul>';
html += '</div>';
$('#resp1').html('').html(html);
},
complete: function (data) {
// Функция выполняется по завершению AJAX запроса и функции success
},
error: function (data) {
// Функция выполняется в случае ошибки
}
});
Демо здесь.
Кстати на сайте sapphire-shop.com.ua реализован такой механизм регистрации 😉
Важно, это демонстрация возможностей, прошу не писать о различного рода проверках кода и прочем, эта задача ложиться на ваши плечи.
