我试图做一个Codeigniter购物车。
我在更新购物车详细信息方面遇到了一些问题。
HTML / VIEW
foreach ($cart as $item){
$output.='
<input type="hidden" name="cart[' . $item['id'] . '][rowid]" value="'.$item['rowid'].'" >
<input type="hidden" name="cart[' . $item['id'] . '][name]" value="'.$item['name'].'" >
<input type="hidden" name="cart[' . $item['id'] . '][price]" value="'.$item['price'].'" >
<input type="hidden" name="cart[' . $item['id'] . '][qty]" value="'.$item['qty'].'" >
';
}
<input type="submit" class="btn btn-info btn-sm" value="Update Cart" onclick="update_cart();">
这些隐藏字段包含要更新的所有数据。
JS
function update_cart() {
var cart = new Array();
$('input[name^="cart"]').each(function() {
cart.push($(this).val());
});
$.ajax({
url: base_url + 'test/update_cart',
data: {
cart: cart,
csrf_test_name: csrf_token
},
type: "POST",
,
success: function(data) {
}
});
}
CONTROLLER
function update_cart() {
$cart_info = $_POST['cart'];
foreach($cart_info as $id => $cart) {
$rowid = $cart['rowid'];
$price = $cart['price'];
$amount = $price * $cart['qty'];
$qty = $cart['qty'];
$data = array(
'rowid' => $rowid,
'price' => $price,
'amount' => $amount,
'qty' => $qty
);
$this - > cart - > update($data);
}
}
答案 0 :(得分:1)
function update_cart(){
var cart = new Array();
$('input[name^="cart"]').each(function() {
cart.push($(this).val());
});
$.ajax({
url: base_url + 'restaurant/update_cart',
type: "POST",
data: {
'cart':cart,
'csrf_test_name': csrf_token
},
success: function(data) {
}
});
}
将您的ajax更改为此