AJAX и UMI.CMS — это просто. JSON

umi-cms-vertical1

Вам наверняка известно, что вы можете получить любую страницу, объект, макрос(функцию) в 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 реализован такой механизм регистрации 😉

Важно, это демонстрация возможностей, прошу не писать о различного рода проверках кода и прочем, эта задача ложиться на ваши плечи.