创建一个订单系统——有一个问题,许多可能的项目中只有一个被添加到订单中


Creating an order system - have a problem where only one of many possible items is being added to order

我有一个控制我正在创建的订单系统的脚本问题。

系统包含一个搜索功能,查询用户提供的字符串与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一旦你终止脚本,并将访问者发送到另一个页面。

不要过早地结束循环,并且只在完成后发送一个(适当的!)位置头。

相关文章: