Пример добавления в корзину товара с nid 123
.
Javascript:
// Посылаем AJAX запрос
$.post(Drupal.settings.basePath + 'ajax-add-to-cart', {nid:123}, function(response) {
response = Drupal.parseJson(response);
// Показываем сообщение если что-то пошло не так
if (!response.status) {
return alert(response.data);
}
// Обновляем блок с корзиной
$('#block-uc_cart-0 .content').html(response.data);
});
PHP:
/**
* Реализация hook_menu()
*/
function mymodule_menu() {
$items['ajax-add-to-cart'] = array(
'page callback' => 'mymodule_ajax_add_to_cart',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
/**
* Menu callback
*/
function mymodule_ajax_add_to_cart() {
if (!isset($_POST['nid'])) {
return;
}
// Добавляем товар в корзину
uc_cart_add_item((int)$_POST['nid'], 1, NULL, NULL, FALSE);
// Получаем содержимое блока корзины
$block = module_invoke('uc_cart', 'block', 'view', 0);
// Возвращаем содержимое блока корзины
drupal_json(array('status' => TRUE, 'data' => $block['content']));
}
Написанное актуально для
Ubercart 6.x-2.x
Похожие записи
- Показать второй шаг многошаговой формы в модальном окне
- Навесить на элемент managed_file свой ajax callback (Как обновить всю форму при загрузки файла в managed_file)
- Восстанавливаем позицию текстового курсора при ajax обновлении формы
- Как выполнять свой js-код до или после любых AJAX запросов (изменение работы AJAX API)
- AJAX в форме корзины Commerce 2
Комментарии
Есть же ж готовый модуль http://drupal.org/project/uc_ajax_cart
я в курсе
Скажите а при кешировании блоков этот модуль будет работать ?
это не модуль, а кусок кода ;) при кэшировании работать будет
Вот так правильные добавлять:
Я не силен в програмирывании, я так и не понял куда конкретно вставлять этот код?
для не сильных в "програмирывании" есть готовые модули
Новая аджакс корзина для уберкарт:
Acar - ajax cart for ubercart
http://www.drupal.ru/node/80901
http://u6167.moko.vps-private.net
Добавить комментарий