【发布时间】:2014-12-13 19:34:50
【问题描述】:
我正在做一个简单的购物车。我不确定如何描述我的问题。我有两页。第一个在每个项目旁边都有复选框。第二次在会话中创建一个空数组,然后在循环中,将所有选中的项目推送到会话数组并打印出项目数。第二页还有一个用于输入用户详细信息的表单,该表单使用 PHP 而不是 JS 进行验证。问题是当提交该表单时,第二页被重新加载并且会话数组变为空 $_SESSION['cart']=array();被触发。提交第一页会在第二页给出正确的结果,但在第二页提交表单时这些结果变为 0。两个页面都有: session_start();在顶部。
这是第一页的关键代码:
<form name="form" method="POST" id="form" action="cart.php">
<input type=checkbox name=cart[item1]>
<input type=checkbox name=cart[item2]>…etc
第二页(cart.php):
include "Validation.php";
$_SESSION['cart']=array();
if(isset($_POST['cart'])){
foreach($_POST['cart'] as $checkboxID => $checkboxVal){
array_push($_SESSION['cart'], $checkboxID);
}
}
echo "<p>number of items in the cart = ".sizeof($_SESSION['cart'])."</p>";
<form name="form" method="POST" id="form" action="">
<input type="text" name="userEmail" id="userEmail" placeholder="e.g. me@me.com"/>
<input type="submit" class="buttun" name="buy" value="buy"/>
第三页(Validation.php):
if (isset($_POST["buy"])){
//some validation code
}
有没有办法解决这个问题?我试图在 if 语句中创建空数组,但结果很糟糕。我认为使用 JS 验证可以解决问题,但更喜欢 php 验证。
谢谢
【问题讨论】:
标签: php validation session shopping-cart