我有一个控制我正在创建的订单系统的脚本问题。
系统包含一个搜索功能,查询用户提供的字符串与mysql表中保存的产品,如果字符串匹配产品描述的一部分,则该产品作为结果返回。
现在,问题是这样的。
如果用户搜索一个字符串,返回5个结果。
然后用户决定他们想要添加一个结果的3和另一个结果的2。
然后点击order,这将提交表单。
这里出现了问题,因为只有用户输入数量的第一个结果被添加到订单中。
订单应该包含两个项目,一个数量为3个,另一个数量为2个。它没有这样做,我不知道这里出了什么问题。
下面是控制用户点击订单按钮实例的代码:
if (!isset($_SESSION['order']))
{
$_SESSION['order'] = array();
}
if (!isset($_SESSION['quantity']))
{
$_SESSION['quantity'] = array();
}
$productQuantities=$_POST['quantity'];
if (isset($_POST['action']) and $_POST['action'] == 'Order' and $productQuantities > 0)
{
foreach($productQuantities as $productId=>$quantityS)
{
if ($quantityS > 0)
{
$_SESSION['order']["$productId"] = $productId;
$_SESSION['quantity']["$productId"] = $quantityS;
header('Location: .');
exit();
}
}
}
有人能看到我在这里犯了一个错误吗?
任何输入将非常感谢,我将提供任何额外的代码要求。
谢谢!
您创建了一个循环,但在该循环的第一次迭代中,您发送Location
头和exit
脚本执行。显然,没有更多的产品可以添加到$_SESSION
一旦你终止脚本,并将访问者发送到另一个页面。
不要过早地结束循环,并且只在完成后发送一个(适当的!)位置头。