Понеже не разбирам от jQuery/ajax. Имам проблем с този код. Та, когато отворим прозореца на количката и сме добавили например 3 артикула, и решим да изтрием някой артикул, количката fadeOut-ва (се скрива и трябва отново да се отвори).Също при добавянето на два артикула с един и същ код, но с различен цвят/размер, скрипта го замества, а трябва да го добавя като нов продукт със същия код, но различен цвят/размер.
cart_process.php
PHP:
<script type="text/javascript">
$(document).ready(function() {
$(".form-item").submit(function(e) {
var form_data = $(this).serialize();
var input_cont = $(this).find('input[type=submit]');
$.ajax({
url: "cart_process.php",
type: "POST",
dataType: "json",
data: form_data
}).done(function(data) {
$("#cart-info").html(data.items);
input_cont.val('ДОБАВИ В КОШНИЦАТА');
//alert("Добавено в кошницата!");
if($(".shopping-cart-box").css("display") == "block") {
$(".cart-box").trigger( "click" );
}
})
e.preventDefault();
});
// Показване на продуктите в кошницата
$(".cart-box").click(function(e) {
e.preventDefault();
$(".shopping-cart-box").fadeToggle("fast");
$("#shopping-cart-results" ).load( "cart_process.php", {"load_cart":"1"});
});
// Премахване на продукти от кошницата
$("#shopping-cart-results").on('click', 'a.remove-item', function(e) {
e.preventDefault();
var pcode = $(this).attr("data-code");
$(this).parent().fadeOut();
$.getJSON( "cart_process.php", {"remove_code":pcode} , function(data) {
$("#cart-info").html(data.items);
$(".cart-box").trigger( "click" );
});
});
});
</script>
cart_process.php
PHP:
<?php
session_start();
include_once("config.php");
if(isset($_POST["code"])) {
foreach($_POST as $key => $value) {
$new_product[$key] = filter_var($value, FILTER_SANITIZE_STRING);
}
$statement = $mysqli_conn->prepare("SELECT name, price, discount FROM products WHERE code=? LIMIT 1");
$statement->bind_param('s', $new_product['code']);
$statement->execute();
$statement->bind_result($product_name, $product_price, $product_discount);
while($statement->fetch()) {
$new_product["name"] = $product_name;
$new_product["price"] = $product_price;
$new_product["discount"] = $product_discount;
if(isset($_SESSION["products"])) {
if(isset($_SESSION["products"][$new_product['code']])) {
unset($_SESSION["products"][$new_product['code']]);
}
}
$_SESSION["products"][$new_product['code']] = $new_product;
}
$total_items = count($_SESSION["products"]);
die(json_encode(array('items' => $total_items)));
}
if(isset($_POST["load_cart"]) && $_POST["load_cart"] == 1) {
if(isset($_SESSION["products"]) && count($_SESSION["products"]) > 0) {
$cart_box = "<ul class=\"cart-products-loaded\">";
$total = 0;
foreach($_SESSION["products"] as $product) {
$product_name = $product['name'];
$product_price = $product['price'];
$product_discount = $product['discount'];
$percentage = $product_price*($product_discount/100);
$product_price = $product_price-$percentage;
$product_price = number_format($product_price, 2);
$code = $product['code'];
$sizes = $product['sizes'];
$colors = $product['colors'];
$cart_box .= "<li>Код: ".$code." | ".$product_name." (Цвят: ".$colors." | Размер: ".$sizes.") - ".$product_price." ".$currency." <a href=\"#\" class=\"remove-item\" data-code=\"".$code."\">×</a></li>";
$subtotal = $product_price;
$total = ($total+$subtotal);
}
$cart_box .= "</ul>";
$cart_box .= "<div class=\"cart-products-total\">Общо без доставката: ".sprintf("%01.2f", $total)." ".$currency."</div>";
$cart_box .= "<p align=\"center\"><a href=\"viewcart\" class=\"btn btn-primary\" style=\"width: 100%;\" role=\"button\">ПРОДЪЛЖИ</a></p>";
die($cart_box);
} else {
die("Количката е празна.");
}
}
if(isset($_GET["remove_code"]) && isset($_SESSION["products"])) {
$product_code = filter_var($_GET["remove_code"], FILTER_SANITIZE_STRING);
if(isset($_SESSION["products"][$product_code])) {
unset($_SESSION["products"][$product_code]);
}
$total_items = count($_SESSION["products"]);
die(json_encode(array('items' => $total_items)));
}
?>