Добрый день.
Данные корзины храниться в сессии ($_SESSION['products'])
Имеют такой вид:
Array ( [163] => 1 [75] => 5 [77] => 1 )
//(id => count id => count id => count)
При нажатии на кнопку добавить, добавляется в сессию. Вроде пока все отлично.
$(document).ready(function () {
$(".add-to-cart").click(function () {
var id = $(this).attr("data-id");
var count = $('#cart-count').text();
$.post("/order/addAjax/" + id, {}, function () {
$("#cart-count").text(count++);
});
return false;
});
});
public function AddAjax($id)
{
echo Cart::addProduct($id);
return true;
}
public static function addProduct($id)
{
// Приводим $id к типу integer
$id = intval($id);
// Пустой массив для товаров в корзине
$productsInCart = array();
// Если в корзине уже есть товары (они хранятся в сессии)
if (isset($_SESSION['products'])) {
// То заполним наш массив товарами
$productsInCart = $_SESSION['products'];
}
// Проверяем есть ли уже такой товар в корзине
if (array_key_exists($id, $productsInCart)) {
// Если такой товар есть в корзине, но был добавлен еще раз, увеличим количество на 1
$productsInCart[$id] ++;
} else {
// Если нет, добавляем id нового товара в корзину с количеством 1
$productsInCart[$id] = 1;
}
// Записываем массив с товарами в сессию
$_SESSION['products'] = $productsInCart;
// Возвращаем количество товаров в корзине
return self::countItems();
}
Но Не могу ни как реализовать, что бы без перезагрузки обновлялись данные в таблице.
Сама таблица:
<div class="card" id="container-cart">
<?php if ($productsInCart): ?>
<p>Вы выбрали такие товары:</p>
<table class="table-bordered table-striped table" id="table-cart">
<tr>
<th>Код</th>
<th>Название</th>
<th>Стомость</th>
<th>Количество</th>
<th>Удалить</th>
</tr>
<?php foreach ($products as $product): ?>
<tr>
<td>
<?php echo $product['code']; ?>
</td>
<td>
<a href="/product/<?php echo $product['id']; ?>">
<?php echo $product['name']; ?>
</a>
</td>
<td>
<?php echo $product['price_roz']; ?>
</td>
<td id="cart-count">
<?php echo $productsInCart[$product['id']]; ?>
</td>
<td>
<a href="/cart/delete/<?php echo $product['id']; ?>">
<i class="fa fa-times"></i>
</a>
</td>
</tr>
<?php endforeach; ?>
<tr>
<td colspan="4">Общая стоимость, грн:
<?php echo $totalPrice; ?> </td>
<td></td>
</tr>
</table>
<a class="btn btn-default checkout" href="/cart/checkout">
<i class="fa fa-shopping-cart"></i> Оформить заказ</a>
<?php else: ?>
<p>Корзина пуста</p>
<?php endif; ?>
</div>
Помогите с AJAX запросом для обновление таблицы без перезагрузки. Спасибо :) С меня лайк
Виртуальный выделенный сервер (VDS) становится отличным выбором
Делю я значит страницу на фрагменты в Thymeleaf и тут возникла необходимость сделать два вида элемента <header>
Можно ли сделать без привлечения JS следующее? Есть два div'a расположенных в ряд, один принимает ширину контента, которая может быть разной...
Не пойму почему выводится не понятная строкаОбъясните что не так, на локальном сервере все показывается нормально но когда я залил проект...