【发布时间】:2018-12-11 08:29:37
【问题描述】:
我需要帮助来解决这个问题。
我有一个输入来指定用户想要订购的产品数量。当按下“添加到购物车”按钮时,买家购物篮还必须显示为该产品订购的数量。到目前为止,我只能显示图像、产品名称和价格(它们保存在数据库中并由我接管),但我什至无法显示它们的数量(未保存在数据库中)想要命令。
我正在使用用户会话将产品存储在我的购物车中。 谢谢!
这是我的代码。
<div class="col-md-6">
<div class="summary entry-summary">
<h1 class="shorter"><strong><?php echo $item_rs['product_name']; ?></strong></h1>
<p class="price">
<span class="amount"><?php echo $item_rs['product_price'] . ' $'; ?></span>
</p>
<p class="taller"><?php echo $item_rs['product_description']; ?> </p>
<form enctype="multipart/form-data" method="post" class="cart">
<div class="quantity">
<input type="button" class="minus" value="-">
<input type="text" class="input-text qty text" title="Qty" value="1" name="quantity" min="1" step="1">
<input type="button" class="plus" value="+">
</div>
<button type="button" class="btn btn-primary btn-icon add-cart" data-id="<?php echo $item_rs['id_prod']; ?>">Add to cart</button>
</form>
</div> </div>
这是来自购物车的代码:
<tbody>
<?php
if(isset($arrayIds)) {
foreach($arrayIds as $value) {
$cart_sql = 'SELECT * FROM produs WHERE id_prod=' . $value;
if($cart_query = mysqli_query($dbconnect, $cart_sql)) {
$cart_rs = mysqli_fetch_assoc($cart_query);
}
?>
<tr>
<td class="product-thumbnail">
<img width="80" height="80" alt=""
class="img-responsive"
src="img/products/<?php echo $cart_rs['img_name']; ?>">
</td>
<td class="product-name">
<?php echo $cart_rs['product_description']; ?><span
class="amount"></span><br>
<?php echo $cart_rs['product_price'].' $'; ?>
</td>
<td class="product-quantity">
</td>
<td class="product-actions">
<a title="Delete product" data-id="<?php echo $cart_rs['id_prod']; ?>" class="remove" href="#">
<i class="fa fa-times"></i>
</a>
</td>
</tr>
<?php
}
}
?>
</tbody>
Seding 用户会话是使用 jQuery 进行的:
<script>
$(document).ready(function(){
$(document).on('click', '.add-cart',function(e){
e.preventDefault();
var data_id = $(this).attr('data-id');
$.post('set_storage.php', {id: data_id});
location.reload();
});
});
</script>
这是文件“set_storage.php”:
<?php
session_start();
$arrayIds = $_SESSION["id"];
if ($arrayIds) {
$_SESSION["id"] = $arrayIds . ", " . $_POST['id'];
} else {
$_SESSION["id"] = $_POST['id'];
}
?>
【问题讨论】:
-
那么,为什么不将数量存储在用户的会话中呢?
-
您也可以将购物车存储在浏览器本地存储中。
-
为什么用 Javascript 和 jQuery 标记?这似乎是一个纯粹的 PHP 问题。 (你说你在会话中存储数据,但不显示任何读取或写入会话的代码。)
-
和@NicoHaase一样我有点困惑
-
@NicoHaase 你能指导我完成这个过程吗?