0% found this document useful (0 votes)
22 views4 pages

Untitled 1

This document displays a shopping cart with items, quantities, prices and a total. It allows the user to update quantities, remove items, and empty the entire cart. JavaScript functions handle these interactions by making AJAX requests to update the database and re-calculate the displayed totals. Buttons trigger prompts to confirm removals or emptying the cart before completing the action.

Uploaded by

Dharadevi S
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views4 pages

Untitled 1

This document displays a shopping cart with items, quantities, prices and a total. It allows the user to update quantities, remove items, and empty the entire cart. JavaScript functions handle these interactions by making AJAX requests to update the database and re-calculate the displayed totals. Buttons trigger prompts to confirm removals or emptying the cart before completing the action.

Uploaded by

Dharadevi S
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

<section class="py-5">

<div class="container">
<div class="row">
<div class="col d-flex justify-content-end mb-2">
<button class="btn btn-outline-dark btn-flat btn-sm" type="button"
id="empty_cart">Empty Cart</button>
</div>
</div>
<div class="card rounded-0">
<div class="card-body">
<h3><b>Cart List</b></h3>
<hr class="border-dark">
<?php
$qry = $conn->query("SELECT
c.*,p.product_name,i.size,i.price,p.id as pid from `cart` c inner join `inventory`
i on i.id=c.inventory_id inner join products p on p.id = i.product_id where
c.client_id = ".$_settings->userdata('id'));
while($row= $qry->fetch_assoc()):
$upload_path = base_app.'/uploads/product_'.$row['pid'];
$img = "";
if(is_dir($upload_path)){
$fileO = scandir($upload_path);
if(isset($fileO[2]))
$img = "uploads/product_".$row['pid']."/".
$fileO[2];
// var_dump($fileO);
}
?>
<div class="d-flex w-100 justify-content-between mb-2 py-2
border-bottom cart-item">
<div class="d-flex align-items-center col-8">
<span class="mr-2"><a href="javascript:void(0)"
class="btn btn-sm btn-outline-danger rem_item" data-id="<?php echo $row['id'] ?
>"><i class="fa fa-trash"></i></a></span>
<img src="<?php echo validate_image($img) ?>"
loading="lazy" class="cart-prod-img mr-2 mr-sm-2 border" alt="">
<div>
<p class="mb-1 mb-sm-1"><?php echo
$row['product_name'] ?></p>
<p class="mb-1 mb-sm-1"><small><b>Size:</b> <?php
echo $row['size'] ?></small></p>
<p class="mb-1 mb-sm-1"><small><b>Price:</b> <span
class="price"><?php echo number_format($row['price']) ?></span></small></p>
<div>
<div class="input-group">
<div class="input-group-prepend">
<button class="btn btn-sm btn-outline-
secondary min-qty" type="button" id="button-addon1"><i class="fa
fa-minus"></i></button>
</div>
<input type="number" class="form-control form-
control-sm qty text-center cart-qty" placeholder="" aria-label="Example text with
button addon" value="<?php echo $row['quantity'] ?>" aria-describedby="button-
addon1" data-id="<?php echo $row['id'] ?>" readonly>
<div class="input-group-append">
<button class="btn btn-sm btn-outline-
secondary plus-qty" type="button" id="button-addon1"><i class="fa
fa-plus"></i></button>
</div>
</div>
</div>
</div>
</div>
<div class="col text-right align-items-center d-flex
justify-content-end">
<h4><b class="total-amount"><?php echo
number_format($row['price'] * $row['quantity']) ?></b></h4>
</div>
</div>
<?php endwhile; ?>
<div class="d-flex w-100 justify-content-between mb-2 py-2 border-
bottom">
<div class="col-8 d-flex justify-content-end"><h4>Grand
Total:</h4></div>
<div class="col d-flex justify-content-end"><h4 id="grand-
total">-</h4></div>
</div>
</div>
</div>
<div class="d-flex w-100 justify-content-end">
<a href="./?p=checkout" class="btn btn-sm btn-flat btn-
dark">Checkout</a>
</div>
</div>
</section>
<script>
function calc_total(){
var total = 0

$('.total-amount').each(function(){
amount = $(this).text()
amount = amount.replace(/\,/g,'')
amount = parseFloat(amount)
total += amount
})
$('#grand-total').text(parseFloat(total).toLocaleString('en-US'))
}
function qty_change($type,_this){
var qty = _this.closest('.cart-item').find('.cart-qty').val()
var price = _this.closest('.cart-item').find('.price').text()
var cart_id = _this.closest('.cart-item').find('.cart-qty').attr('data-id')
var new_total = 0
start_loader();
if($type == 'minus'){
qty = parseInt(qty) - 1
}else{
qty = parseInt(qty) + 1
}
price = parseFloat(price)
// console.log(qty,price)
new_total = parseFloat(qty * price).toLocaleString('en-US')
_this.closest('.cart-item').find('.cart-qty').val(qty)
_this.closest('.cart-item').find('.total-amount').text(new_total)
calc_total()

$.ajax({
url:'classes/Master.php?f=update_cart_qty',
method:'POST',
data:{id:cart_id, quantity: qty},
dataType:'json',
error:err=>{
console.log(err)
alert_toast("an error occured", 'error');
end_loader()
},
success:function(resp){
if(!!resp.status && resp.status == 'success'){
end_loader()
}else{
alert_toast("an error occured", 'error');
end_loader()
}
}

})
}
function rem_item(id){
$('.modal').modal('hide')
var _this = $('.rem_item[data-id="'+id+'"]')
var id = _this.attr('data-id')
var item = _this.closest('.cart-item')
start_loader();
$.ajax({
url:'classes/Master.php?f=delete_cart',
method:'POST',
data:{id:id},
dataType:'json',
error:err=>{
console.log(err)
alert_toast("an error occured", 'error');
end_loader()
},
success:function(resp){
if(!!resp.status && resp.status == 'success'){
item.hide('slow',function(){ item.remove() })
calc_total()
end_loader()
}else{
alert_toast("an error occured", 'error');
end_loader()
}
}

})
}
function empty_cart(){
start_loader();
$.ajax({
url:'classes/Master.php?f=empty_cart',
method:'POST',
data:{},
dataType:'json',
error:err=>{
console.log(err)
alert_toast("an error occured", 'error');
end_loader()
},
success:function(resp){
if(!!resp.status && resp.status == 'success'){
location.reload()
}else{
alert_toast("an error occured", 'error');
end_loader()
}
}

})
}
$(function(){
calc_total()
$('.min-qty').click(function(){
qty_change('minus',$(this))
})
$('.plus-qty').click(function(){
qty_change('plus',$(this))
})
$('#empty_cart').click(function(){
// empty_cart()
_conf("Are you sure to empty your cart list?",'empty_cart',[])
})
$('.rem_item').click(function(){
_conf("Are you sure to remove the item in cart list?",'rem_item',[$
(this).attr('data-id')])
})
})
</script>

You might also like