【发布时间】:2020-12-04 15:39:30
【问题描述】:
我正在尝试在我的 PHP 项目中开发“添加到购物车”功能。这是代码。
这是我从中获取产品数据的表单。
表格
<form class="product-form" method="POST">
<input name="product_id" type="hidden"
value="<?=$data['id']?>">
<input name="user_id" type="hidden" value="1">
<button name="trending-submit" type="submit" class="btn btn-success">Add To
Cart</button>
</form>
ajax
$(".product-form").submit(function () {
var form_data = $(this).serialize();
var button_content = $(this).find("button[type=submit]");
button_content.html("Adding...");
$.ajax({
url: "./includes/add-to-cart.php",
type: "POST",
data: form_data,
dataType: "html",
success: function (response) {
alert(response);
$(".cart-quantity").html(response);
button_content.html("Add to Cart");
},
});
return false;
});
“警报(响应)”根本不显示任何内容。
调用购物车对象函数的 PHP 代码。
PHP
<?php
ob_start();
require("classes/Database.php");
$db = new Database();
require("classes/Cart.php");
$cart = new Cart($db);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if ($_POST['product_id'] != null && $_POST['user_id'] != null) {
$cart->addToCart($_POST['product_id'], $_POST['user_id']);
}
$total = $cart->showCartQuantity();
echo $total;
exit;
}
【问题讨论】:
-
旁注:检查
$_POST索引与null是不够的(它仍然会产生“未定义索引”通知)。请改用isset()。 -
当您创建网店时,我怀疑您是否也希望将空的产品 ID/ID 添加到您的购物车中;使用
empty()