2012-10-12 42 views
1

我正在從事的計劃本質上是一家餐廳的收據製造商。有一個下拉列表,其中包含從數組中取出的一串食物。該數組包括每個項目的價格,並且從現在開始,該程序將顯示從下拉菜單中選擇的任何食品項目,列出各個價格,並將它們總計添加。我遇到的問題是,如果有人多次選擇相同的物品,我無法註冊該物品的數量。基本上,我需要一些代碼來檢查當前選擇與過去的選擇,看看它們是否有任何重複。我真的不知道該怎麼做。 Here是我的代碼。請看看並傳遞任何建議。謝謝。使用php和html,我如何計算從下拉列表中進行選擇的次數?

回答

1

您可以將選定的值存儲在會話中,並使用PHP的in_array函數檢查會話中是否存在該選擇的值。一旦該值爲假,您可以添加選擇而不重複其他值。

編輯; 假設您有一個名爲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();在頁面的最頂端。

+0

您能否提供一個示例? – user1742142

+0

[這裏](https://gist.github.com/3881162)是我的代碼,在索引的頂部引用了另外兩個文件。我是PHP新手,在會話中仍然不清楚,但我認爲會話已經在session.php中啓動。 – user1742142

+0

我認爲你應該檢查我給你的索引31行左右的支票。如果您使用選項的值作爲關鍵字,也許應該使用array_key_exists函數而不是in_array。 – Christiaan

0

使用某種形式的數組鍵和添加新的產品進入陣列,從而可能產生重複之前唯一產品ID,檢查其ID已通過陣列鍵存在。如果存在,只需運行如下內容:

if (isset($products[$id]) { 
    $products[$id]['quantity'] = $products[$id]['quantity']++; 
} else { 
    // Create new array item as you're doing now... 
} 
相關問題