Я всегда брожу по Интернету и переполняю стек в поисках ответов, просто спрашиваю, когда не могу найти ответ.
Я создал небольшую корзину с помощью jquery и php.
Есть только одна ошибка, которую я не могу выяснить.
Когда пользователь добавляет элемент, элемент добавляется с помощью кол-во 1. Если он снова добавляет тот же элемент, кол-во становится равным 2 и т. Д.
Допустим, пользователь выбрал элемент, а количество равно 2.
Если он нажимает кнопку удаления один раз, количество этого элемента становится 1.
Это то, что я хочу, но если он снова нажмет кнопку удаления, элемент будет удален.
Проблема в том, что пользователь добавляет тот же элемент, который он только что удалил. Когда он добавляет его, кол-во для этого элемента становится 4.
Вот код для добавления предмета:
@$new = $_POST['item'];
if($new) {
if(!isset($_SESSION['cart'])) {
$_SESSION['cart'] = array();
$_SESSION['items'] = 0;
$_SESSION['total_price'] = '0.00';
}
if(isset($_SESSION['cart'][$new])) {
$_SESSION['cart'][$new]++;
} else {
$_SESSION['cart'][$new] = 1;
}
}
а вот код для удаления предмета ..
@$remove = $_GET['remove'];
if($remove) {
if(isset($_SESSION['cart'][$remove])) {
$_SESSION['cart'][$remove]--;
foreach ($_SESSION['cart'] as $item => $qty) {
if($qty < 1) {
unset($_SESSION['cart'][$qty]);
unset($_SESSION['cart'][$item]);
}
}
} else {
$_SESSION['cart'][$remove];
}
}
Я новичок в php и программировании в целом; Я начал учиться 1 месяц назад.
РЕДАКТИРОВАТЬ: проблема с кодом javascript, с отключенным javscript, корзина работает хорошо, с включенным javascript, когда я добавляю элемент, я получаю 2 в количестве вместо 1, и если я удаляю элемент и добавляю его в корзину снова он умножает кол-во от 2 до 4 и т. д.
$(".shop_cart").submit(function() {
var data = $(this).serialize();
$.ajax({
type: 'post',
url: 'cart.inc.php',
data: data,
cache: false,
success: function(data) {
$("#cart").html(data);
}
});
return false;
});
а вот удалить из корзины код
$(".remove").click(function() {
var remove = 'remove=' + $(this).attr('id')
$.ajax({
type: 'get',
url: 'cart.inc.php',
cahce: false,
data: remove,
success: function(data) {
$("#cart").html(data);
}
})
return false;
});