Никак не могу разобраться с ajax. Делаю корзину. Запрос отправляется index.php, где в контроллере есть условие:
if($cart == 'add_item'){ add_to_cart($par_id, $par_qty); $_SESSION['total_sum'] = total_sum($_SESSION['cart']); //количество товара в корзину + защита от ввода несущетвующего параметра товара $_SESSION['total_quantity'] = 0; foreach($_SESSION['cart'] AS $key => $value){ if(isset($value['color_id'])){ // если получен цвет товара из бд - сцммируем $_SESSION['total_quantity'] += $value['qty']; }else{ //иначе удаляем такой праметр из сессии unset($_SESSION['cart'][$key]); } } cart(); exit;}
Создаётся массив $_SESSION с ключом ['cart'], в конце есть функция
cart();
она формирует строку html самой корзины, то есть в цикле проходит по массиву $_SESSION['cart']. По идее, сервер должен вернуть эту строку, но не возвращает. Не могу понять, где я ошибся.
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Портфолио https://www.behance.net/d4d4186e
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Актуальные контакты:
Telegram: @Nikker_web
E-Mail: tarasevich.email@gmail.com
Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ
Портфолио https://www.behance.net/d4d4186e
Question
Torawhite
Здравствуйте!
Никак не могу разобраться с ajax. Делаю корзину. Запрос отправляется index.php, где в контроллере есть условие:
if($cart == 'add_item'){ add_to_cart($par_id, $par_qty); $_SESSION['total_sum'] = total_sum($_SESSION['cart']); //количество товара в корзину + защита от ввода несущетвующего параметра товара $_SESSION['total_quantity'] = 0; foreach($_SESSION['cart'] AS $key => $value){ if(isset($value['color_id'])){ // если получен цвет товара из бд - сцммируем $_SESSION['total_quantity'] += $value['qty']; }else{ //иначе удаляем такой праметр из сессии unset($_SESSION['cart'][$key]); } } cart(); exit;}Создаётся массив $_SESSION с ключом ['cart'], в конце есть функция
она формирует строку html самой корзины, то есть в цикле проходит по массиву $_SESSION['cart']. По идее, сервер должен вернуть эту строку, но не возвращает. Не могу понять, где я ошибся.
Отправляю данные на сервер так:
$(document).ready(function(){ $('#add_to_cart').click(function(){ var selected = $('.selected'); // Определяем переменную var color_section_id = selected.attr('data-color'); // Определяем переменную var select_body_item = $('#select_body_item_' + color_section_id + ' option:selected'); // Определяем переменную var parameter_id = select_body_item.val(); // Определяем переменную var input = $('.qty_input_wrap input'); // Определяем переменную var qty = input.val(); // Определяем переменную var cart_input = $('#cart_input_' + parameter_id); var cart_input_val = cart_input.val(); var cart_input_qty = cart_input.attr('data-cart-item-qty'); var item_qty_sum; item_qty_sum = parseInt(qty) + parseInt(cart_input_val); if(parameter_id != 0 ){ if(cart_input_val == cart_input_qty && cart_input_val || item_qty_sum > cart_input_qty){ $('#cart_item_qty').text(cart_input_val); $('#cart_item_stock').text(cart_input_qty); $("#modal_window_cart_stock_error").fadeIn(250); setTimeout(function() { $("#modal_window_cart_stock_error").fadeOut(250); }, 2000); }else{ $.ajax({ url: "http://store.torawhite.ru/", type: "POST", data: ({ cart: 'add_item', par_id: parseInt(parameter_id), par_qty: parseInt(qty), success: function(data){ $('#cart_content').hide().fadeIn().html(data); $("#modal_window_cart_add").fadeIn(250); setTimeout(function() { $("#modal_window_cart_add").fadeOut(250); }, 2000); }, error: function(){ } }) }); } }else{ $("#modal_window_cart_error").fadeIn(250); setTimeout(function() { $("#modal_window_cart_error").fadeOut(250); }, 2000); } }); });Данные проходят, массив создаётся, но новое содержимое корзины не вставляется. Корзина обновляется только после обновления самой страницы.
Edited by TorawhiteLink to comment
Share on other sites
7 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.