Am trying to update the quantity in add to cart session, but the below code only increases the quantity of the first item added twice and then perfoms a merge whenever any other item is added twice, kidly help
$('.add-to-cart-mt').on('click', function(e){
e.preventDefault();
var id =$(this).attr('id');
$('#add-to-cat-dialog').dialog({
autoOpen:false,
modal:true,
hide:"pluff",
show:"slide",
height:200,
open: function() { $(".ui-dialog-titlebar-close").hide(); },
buttons:{
"Add":function (){
$('#add-to-cat-dialog').dialog("close");
$.ajax({
url: 'add_to_cart.php',
data: { productId : id },
success: function (data) {
$('.top-cart-contain').empty();
$('.top-cart-contain').load("header_cart_summary.php");
},
error :function (data, textStatus, jqXHR) { }
});
},
"Cancel":function (){
$(this).dialog("close");
}
}
});
$('#add-to-cat-dialog').dialog("open");
});
session_start();
require './database.php';
if(!empty($_GET["productId"])) {
$id=$_GET["productId"];
$productById = $connection->query("SELECT * FROM products WHERE productId='$id';");
if($productById && (mysqli_num_rows($productById)>0)){
echo 'query ok';
$productDetail= mysqli_fetch_assoc($productById);
$itemArray = array(
$productDetail["productId"]=>array(
'name'=>$productDetail["productName"],
'id'=>$productDetail["productId"],
'quantity'=>1,
'price'=>$productDetail["productPrice"],
'image'=>$productDetail["productsImage1"]
)
);
if(!empty($_SESSION["cart_item"])) {
if(in_array($productDetail["productId"],array_keys($_SESSION["cart_item"]))) {
foreach($_SESSION["cart_item"] as $k => $v) {
if($productDetail["productId"] == $k) {
if(empty($_SESSION["cart_item"][$k]["quantity"])) {
$_SESSION["cart_item"][$k]["quantity"] = 0;
}
$_SESSION["cart_item"][$k]["quantity"] += 1;
}
}
} else {
$_SESSION["cart_item"] = array_merge($_SESSION["cart_item"],$itemArray);
}
} else {
$_SESSION["cart_item"] = $itemArray;
}
//set product count in the bag
if(!empty($_SESSION['cart_volume'])){
$_SESSION['cart_volume'] += 1;
} else {
$_SESSION['cart_volume'] = 1;
}
}else {echo ''. mysqli_error($connection);}
} else {
echo 'no item';
}
[enter image description here][1]<li class="item col-lg-4 col-md-4 col-sm-6 col-xs-6 ">
<div class="product-item">
<div class="item-inner">
<div class="product-thumb has-hover-img">
<figure> <a title="Ipsums Dolors Untra" href="single_product.html"> <img class="first-img" src="./productImages/<?php echo $item['productsImage1']; ?>" style="height: 250px;" alt=""> <img class="hover-img" src="../images/products/img05.jpg" alt=""> </a></figure>
<div class="pr-info-area animated animate2"><a href="quick_view.html" class="quick-view"><i class="fa fa-search"><span>Quick view</span></i></a> <a href="wishlist.html" class="wishlist"><i class="fa fa-heart"><span>Wishlist</span></i></a> <a href="compare.html" class="compare"><i class="fa fa-exchange"><span>Compare</span></i></a> </div>
</div>
<div class="item-info">
<div class="info-inner">
<div class="item-title"> <h4><a title="Ipsums Dolors Untra" href="single_product.html"><?php echo $item['productName']; ?></a></h4> </div>
<div class="item-content">
<div class="rating"> <i class="fa fa-star-o"></i> <i class="fa fa-star-o"></i> <i class="fa fa-star-o"></i> <i class="fa fa-star-o"></i> <i class="fa fa-star-o"></i> </div>
<div class="item-price">
<div class="price-box">
<p class="special-price"> <span class="price-label">Special Price</span> <span class="price">Ksh. <?php echo number_format($item['productPrice'], 2) ; ?></span> </p>
<!--<p class="old-price"> <span class="price-label">Regular Price:</span> <span class="price"> $567.00 </span> </p>-->
</div>
</div>
<div class="pro-action">
<button type="button" class="add-to-cart-mt" id="<?php echo $item['productId']; ?>"> <i class="fa fa-shopping-cart"></i><span> Add to Cart</span> </button>
</div>
</div>
</div>
</div>
</div>
</div>
</li>
The code below works fine as i required. Thanks to -Saleiro for his inputs.
[
if(!empty($_GET["productId"])) {
$id=intval($_GET["productId"]);
$productById = $connection->query("SELECT * FROM products WHERE productId='$id' ");
if($productById && (mysqli_num_rows($productById)>0)){
$productDetail= mysqli_fetch_assoc($productById);
$itemArray = array(intval($productDetail["productId"])=>array('name'=>$productDetail["productName"], 'id'=>intval($productDetail["productId"]), 'quantity'=>1, 'price'=>$productDetail["productPrice"]));
$found = false;
if(!empty($_SESSION["cart_item"])) {
foreach($_SESSION["cart_item"] as $k => $v) {
if($productDetail["productId"] == $v['id']) {
$found= true;
if(empty($_SESSION["cart_item"][$k]["quantity"])) {
$_SESSION["cart_item"][$k]["quantity"] = 0;
}
$_SESSION["cart_item"][$k]["quantity"] += 1;
break;
}
}
if(!$found) {
$_SESSION["cart_item"] = array_merge($_SESSION["cart_item"],$itemArray);
}
} else {
$_SESSION["cart_item"] = $itemArray;
}
}else {echo ''. mysqli_error($connection);}
if(!empty($_SESSION['cart_volume'])){
$_SESSION['cart_volume'] += 1;
} else {
$_SESSION['cart_volume'] = 1;
}
} else {
echo 'no item';
}
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments