آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشاهد سبد خرید

مهدی  4 سال پیش  4 سال پیش
+1 0

سلام دوستان گلم

من یک مشکی دارم داخل سبد خرید وقتی تعداد محصول را اضافه میکنم  قیمت و همه چی درست نمایش میده اما مشکل اینجاست که موقعی به درگاه وصل میشه قیمت درست نمایش نمیده

مشکل اینجاست price  تغییر نمیکنه

اینم کد

 
<? $totalPrice = 0; ?>

<table id="cartDetail">
<colgroup>
<col style="width: 100px">
<col style="width: 100%">
<col style="min-width: 30px; max-width: 30px;">
<col style="min-width: 50px; max-width: 50px;">
<col style="min-width: 75px; max-width: 75px;">
<col style="min-width: 25px; max-width: 25px;">
</colgroup>

<thead>
<th>تصویر</th>
<th>نام محصول</th>
<th>تعداد</th>
<th>فی</th>
<th>قیمت کل</th>
<th>حذف</th>
</thead>

<? foreach ($orders as $order){ ?>
<tr style="width: 100%" class="cartItem">
<?
$productPriceWithDiscount = $order['price'] - ($order['price'] * $order['discount'] / 100);
$totalPrice += $order['quantity'] * $productPriceWithDiscount;

if ($order['hasCover'] != 1) {
$path = "/image/products/default_t.png";
} else {
$path = "/image/products/" . $order['product_id'] . ".png";
}
?>

<td>
<div class="cartThumbWrapper">
<img src="<?=$path?>" class="cartProductThumb">
</div>
</td>

<td>
<span class="cartProductName"><?=$order['title']?></span>
</td>

<td class="tac">
<input class="itemQuantity" data-order-id="<?=$order['order_id']?>" value="<?=$order['quantity']?>" type="number" min="1" max="10" style="width: 30px; height: 15px" autocomplete="off">
</td>

<td class="tac">
<span class="cartCurrentPrice"><?=$productPriceWithDiscount?></span>
</td>

<td class="tac">
<span class="cartTotalOrderPrice"><?=$productPriceWithDiscount?></span>
</td>

<td class="tac">
<span class="ic-cross cartRemoveBtn" onclick="removeOrder2(this, <?=$order['order_id']?>)"></span>
</td>
</tr>
<? } ?>
</table>

<div id="cartTotal">
مبلغ نهایی: <span><?=$totalPrice?></span>
</div>



<a class="proceedBtn" href="/payment/pay/<?=$invoice_hash?>"><span class="icon ic-credit-card"></span><span>پرداخت سبد خرید</span></a>


<script>
function updateTotalOrderPrice(control) {
var quantity = control.val();

var parent = control.parentsUntil(".cartItem").parent();
var price = parent.find('.cartCurrentPrice').text();
parent.find('.cartTotalOrderPrice').text(price * quantity);
}

function updateTotalCartPrice(){
$("#cartDetail").each(function(){
var cartDetail = $(this);

var totalCartPrice = 0;
cartDetail.find(".cartTotalOrderPrice").each(function(){
var totalOrderPrice = $(this).text();
totalCartPrice += parseInt(totalOrderPrice);
});

$("#cartTotal").find('span').html(totalCartPrice);
});
}

$(function() {
$(".itemQuantity").each(function () {
var control = $(this);
updateTotalOrderPrice(control);
});

$(".itemQuantity").on('change', function(){
var control = $(this);
updateTotalOrderPrice(control);
updateTotalCartPrice();

var quantity = control.val();
var orderId = control.data('order-id');

$.ajax({
url: "/product/changeQuantity",
method: 'POST',
data: {
orderId: orderId,
quantity: quantity
}
}).done(function(output) {
refreshCartPreview();
});
});

updateTotalCartPrice();
});



function removeOrder2(sender, productId){
$.ajax({
url: "/product/removeFromCart/" + productId,
method: 'POST',
dataType: "json"
}).done(function(output) {
$(sender).parentsUntil(".cartItem").parent().remove();
updateTotalCartPrice();
});
}
</script>
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
libcode  4 سال پیش
0 0

با سلام . من نتونستم از کد هاتون بفهمم مشکل چیه اما فکر میکنم باید هر دفعه که محصولی اضافه و خرید بشه باید قیمت کل و کل محتوای سبد خرید مثل نمایش محصولات باید توسط ajax آپدیت بشه و در خصوص قیمت کل در دیتابیس هم همینه شما اگر framework تان را طبق آموزش ها بسازید میتوانید با ساختن یک متد private و وصل آن به مدل اطلاعات کمی مثل مبلغ کل را بروزرسانی کنید.


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .