جایگذاری اطلاعات ارسال شده با اجکس
با سلام
session_start();
if (isset($_SESSION["cart"]))
{
$count = 0 ;
foreach ($_SESSION["cart"] as $cart)
{
$count += (int)($cart["num"] * $cart["price"])
?>
<ul class="test">
<li><div id="add_ajax_cart">+</div><div id="sub_ajax_cart">-</div></li>
<li><?php print($cart["id"]) ?></li>
<li id="num_cart"><?php print($cart["num"]) ?></li>
<li><?php print($cart["price"]) ?></li>
<li id="total_price"><?php print($cart["num"] * $cart["price"]) ?></li>
</ul>
<?php
} // End foreach
echo "Total Price = ".$count;
}
این کد نمایش کارت خریدمه همونطور که ملاحظه میکنید یه قسمت + - برای هر کالا وجود داره من میخوام بعد از نمایش این کارت وقتی کاربر روی هر کدوم از + - که صفحه دیگه رفراش نشه و به وسیله اجکس تعداد و قیمت در جای خودش قرار بگیره .
مشکل : با فرض اینکه 5 یا 6 یا بیشتر کالا در کارت خرید باشه برای انتخاب id برای هر + - چه باید کرد یا میتوانیم برای همه یک نام انتخاب کنیم؟ یا جدا و دراین حالت کد جکوئری برای هر ردیف کالا که هم تعداد و هم قیمت کل را تغییر بده چی هست .
با تشکر
نقل قول: جایگزاری اطلاعات امده با اجکس
بزارین سوالو جور دیگه بپرسم
فرض کنید یه حالتی بصورت زیر داریم
<ul class="test">
<li><div id="add_ajax_cart">+</div><div id="sub_ajax_cart">-</div></li>
<li>1</li>
<li id="num_cart">2</li>
<li>345</li>
<li id="total_price">654</li>
</ul>
<ul class="test">
<li><div id="add_ajax_cart">+</div><div id="sub_ajax_cart">-</div></li>
<li>2</li>
<li id="num_cart">3</li>
<li>345</li>
<li id="total_price">900</li>
</ul>
<ul class="test">
<li><div id="add_ajax_cart">+</div><div id="sub_ajax_cart">-</div></li>
<li>3</li>
<li id="num_cart">2</li>
<li>345</li>
<li id="total_price">654</li>
</ul>
<ul class="test">
<li><div id="add_ajax_cart">+</div><div id="sub_ajax_cart">-</div></li>
<li>4</li>
<li id="num_cart">1</li>
<li>345</li>
<li id="total_price">654</li>
</ul>
با فرض مثال بالا من میخوام هر وقت + - موجود درهر ul کلیک شد num_cart , total_price همون ul تغییر کنه این به چه صورت باید کد نویسی بشه .
با تشکر
نقل قول: جایگزاری اطلاعات امده با اجکس
شما باید. والد عنصر + رو بدست بیاری که میشه li بعد همزاد این li رو که id مشخصی داره رو بدست بیاری. و بعد مقدارشو تغییر بدی .
نقل قول: جایگزاری اطلاعات امده با اجکس
با تشکر ولی مشکل تو کدشه که چطوری باید نوشت ، من زیاد جکوئری بلد نیستم کد بزارین ممنون میشم.
و چطور تشخیص داده میشه که کدوم + یا - کلیک شده ؟ با کد لطفا
نقل قول: جایگزاری اطلاعات امده با اجکس
یه نکته ای که باید بهش توجه کنید اینه که id باید تو کل صفحه منحصر به فرد باشه شما میتونید بجاش از class استفاده کنید مثلا
<ul class="test">
<li><div class="add_ajax_cart">+</div><div class="sub_ajax_cart">-</div></li>
<li class='cart_id'>4</li>
<li class="num_cart">1</li>
<li class="price">345</li>
<li class="total_price">654</li>
</ul>
و برای اینکه بفهمید رو کدوم علامت کلیک شده میتونید از این روش استفاده کنید.
$(function () {
$('.test').click(function (e) {
var updateServer = false;
if ($(e.target).is('.add_ajax_cart')) {
// add clicked
updateSever = true;
} else if ($(e.target).is('.sub_ajax_cart')) {
// sub clicked
updateServer = true;
}
// if data changed then send data to server
// for verification and registeration and ..
if (updateServer) {
$.ajax({
type:'',
dataType:'',
url: '',
data: {},
success: function () {
//update your view
}
});
}
});
});