我正在使用PHP创建购物车页面。我设法将用户要购买的商品存储在一个会话变量中,该变量存储一个关联数组,该数组具有该商品的标识符作为键,该商品的数量作为值:
if (isset($_POST["btnSubmit"])){
$_SESSION["cart"][$isbn] += 1;
header("Location:cart.php");
}
我还使用foreach循环和查询设法在购物车上列出了这些物品:
<?php
$total;
foreach($_SESSION["cart"] as $product=>$quantity){
$query = mysqli_query($con,"SELECT * FROM BOOKS WHERE $product LIKE isbn");
$data = mysqli_fetch_array($query, MYSQLI_ASSOC);
$title = $data["title"];
$price = $data["price"];
$image = $data["image"];
$author = $data["author"];
$isbn = $data["isbn"];
print
"<a href='product.php?product=".$isbn."' class='list-group-item list-group-item-action>
<img src='".$image.">
<h5>".$title."</h5>
<h5>£".$price."</h5>
</a>
<select name='quant' id='quant'>
<option value=''>".$quantity."</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
</select>";
$total += $price*$quantity;
}
?>
如您所见,我想使用一个下拉列表来修改购买的商品数量。我需要此列表来更新$ _SESSION ['cart']变量中特定键的值,然后将该数量动态乘以价格以显示总计。为此,我使用的是jQuery。
<script>
$(document).ready(function(){
$("#quant").change(function(){
$.get('ajax/getTotal.php',{quant:$(this).val()},function(data){
$('#total').load(data);
});
});
});
</script>
我需要知道两件事:
非常感谢您的帮助。我真的是AJAX的新手,我很迷路。
最简单的方法是将您的isbn和数量包装为普通<form method="POST" action="/pathToSessionUpdatingScript">
。例如。对于isbn使用<input>
字段,对于数量使用<select>
。如果要避免单击按钮,请像上面一样使用can submit the form using JS / JQuery使用change事件。
然后在服务器端,您只需update the session using another php script
之后您可以redirect回到原始页面。
希望这会有所帮助!