Добрый вечер. Столкнулся с вопросом, на который не могу найти ответ. Почему-то в корзине отображается общее количество товара в два раза больше, чем было добавленно на самом деле. Исходные данные: Создаю PHP файл в котором размещаю все последующие скрипты: <?php session_start(); //Корзина if (isset($_POST['new'])) //new - новый товар { @$new = $_POST['new']; @$quant = $_POST['quant']; //quant - количество товара //Создание корзины if (!isset($_SESSION['cart'])) {$_SESSION['cart'] = array();} //Выбран новый элемент if (isset($_SESSION['cart'][$new])) {$_SESSION['cart'][$new] += $quant;} //Вот тут я увеличиваю количество товара в корзине else {$_SESSION['cart'][$new] = 1;} } ...... На этой же PHP странице вывожу форму с перечнем товаров, при нажатии на которые форма методом POST передает информацию о добавленном товаре. У формы параметр action - имя этого же php файла. ....... do { printf (" <form action='file.php' method='post' name='name'> <tr> <td><input name='quant' type='text' value='1'></td> <td><input name='submit_img' type='image' onClick='form.submit();' src='img/icon/basket_put.png'> <input name='new' type='hidden' value='%s'></td> </tr> </form> ", $goods['item_code']); } while (------------); Почему так происходит? Нигде умножения на два нету. Спасибо.
ну во первых HTML: <td><input name='submit_img' type='image' onClick='form.submit();' src='img/icon/basket_put.png'> type=image всегда работает как submit и onClick='form.submit();' необязательно )) PHP: {$_SESSION['cart'][$new] += $quant;} += ?
$_SESSION['cart'][$new] += $quant; - аналогично $_SESSION['cart'][$new] = $_SESSION['cart'][$new] + $quant;
Коллеги, Есть идеи по этой теме? Переписывать код не хочется. В любом случае надо разобраться в чем проблема. Т.е. каким-то образом, после нажатия кнопки submit, скрипт увеличивает кол. товара в 2-а раза. Может тут какой-то Bug? Или я чего-то не понимаю? С нетерпением жду ваши комментарии.
Обычная тема, отладка. Просмотреть всю логику, просмотреть инициализацию, вывести значения переменных, посомтреть где изменяются. Первый вопрос: два раза записывается или записывается количество 2? Ну и так далее…