1

我正在开发的程序本质上是一家餐馆的收据机。有一个下拉列表,其中包含从数组中取出的一堆食物。该数组包括每个项目的价格,截至目前,程序将显示从下拉列表中选择的任何食品项目,列出各个价格,并将它们加起来为总价。我遇到的问题是,如果有人多次选择同一个项目,我无法注册该项目的数量。基本上,我需要一些代码来检查当前选择与过去的选择是否有任何重复。我真的不知道该怎么做。到目前为止,这是我的代码。请查看并传递任何建议。谢谢。

4

2 回答 2

1

您可以将您选择的值存储在会话中,并使用 PHP 的in_array函数检查会话中是否已经存在该选择的值。一旦值为 false,您可以添加选择而不复制其他值。

编辑; 假设您有一个名为 item 的选择框,并且您在更改时发布。该值将存储在 $_POST['item'];

如果页面已发布,您可以这样做:

<?PHP
if(!in_array($_POST['item'], $_SESSION['items'])) {
    $_SESSION['items'][] = $_POST['item']; // add posted item to array value items in session
}
?>

不要忘记 session_start(); 在页面的最顶部。

于 2012-10-12T19:26:55.840 回答
0

为数组键使用某种唯一的产品 ID,在将新产品添加到数组之前,可能会创建一个副本,通过数组键检查其 ID 是否已经存在。如果存在,只需运行类似:

if (isset($products[$id]) {
    $products[$id]['quantity'] = $products[$id]['quantity']++;
} else {
    // Create new array item as you're doing now...
}
于 2012-10-12T19:28:11.437 回答