【发布时间】:2015-06-29 18:15:51
【问题描述】:
在去结账确认页面之前,我有一个页面来增加和减少购物车上的产品数量。其实我是用ajax做的,然后后端会根据我点击的按钮(它有product_id)来执行操作产品的数量。
问题是,第一次 ajax 运行良好,然后我刷新表(不是整个页面)。但是,当我再次单击该按钮时。它什么也不返回。但是,在我使用 F5 刷新页面然后再次单击按钮后,数量会更新。
你能告诉我解决这个问题的正确方法吗? (PS:对不起我的英语)
Ajax 调用:
$(document).ready(function () {
//Increase quantity on cart
$(".btnPlus").on('click', function () {
var id = $(this).val();
var url = "CRUD member/update-checkout-plus.php";
var postdata = {"id": id};
$.post(url, postdata, function (html) {
$("#myCart").load(location.href + " #myCart");
});
});
这是按钮,我只为按钮加号工作,减号按钮我还没有这样做。
echo '<td style="text-align: center">'
. '<button class="btnPlus" value="' . $item['id'] . '"><span class="glyphicon glyphicon-plus"></span></button>'
. '<input type="text" class="fieldQty" value="' . $item['qty'] . '" style="text-align: center" size="2" readonly/>'
. '<button class="btnMinus" value="' . $item['id'] . '"><span class="glyphicon glyphicon-minus"></span></button>'
. '</td>';
后端(update-checkout-plus.php):
include '../../config.php';
$id = $_POST['id'];
$query = mysql_query("SELECT stock FROM products WHERE product_id = '$id'");
$row = mysql_fetch_array($query);
$stock = $row['stock'];
//if the quantity has reached maximum of stock (DB)
//quantity == $stock
//else quantity++
if ($_SESSION['cart'][$id]['qty'] >= $stock) {
$_SESSION['cart'][$id]['qty'] = $stock;
} else {
$_SESSION['cart'][$id]['qty'] ++;
}
【问题讨论】:
-
你必须通过 add after append 来绑定你的点击事件函数
-
@AjeetKumar 你能给出例如代码吗?我应该对上面给出的代码进行哪些更改?
标签: javascript php jquery ajax