2012-06-21 86 views
0

我有一些幫助,並開始一個會話,它通過點擊一個按鈕保存一個事件ID(通過WordPress的每頁生成)。php session:顯示一個添加或刪除按鈕

它看起來像這樣...

<form action="/addtobasket.php" method="post"> 
<input type="hidden" name="event_id" value="101" /> 
<input type="submit" name="Add to Basket" /> 
</form> 

和addtobasket.php是...

<?php 
session_start(); 
$_SESSION['event_orders'][] = $_POST['event_id']; 
?> 

現在的問題(S)是,當我加入

<?php 
session_start(); 
foreach($_SESSION['event_orders'] AS $event_id){ 
echo 'Your ordered event ID is: ' .$event_id; 
} ?> 

在標題(僅用於測試代碼正在工作)中,它可以顯示多個相同的事件ID,具體取決於是否多次單擊它。我認爲一個解決方案來阻止這種情況(因爲我只希望用戶能夠在會話中保存每個事件ID的最大值),那就是顯示一個刪除按鈕,如果該人擁有保存在其會話中的當前事件ID,則I一種理解其中的邏輯,只是不知道如何執行它,東西這個效果......

(IF會話CURRENT PAGE IF) 顯示從會話按鈕刪除ID(不知道怎麼這個樣子) (ELSE ) 顯示標準添加ID按鈕 (結束)

這是正確的邏輯嗎?如果是的話,我該如何執行此操作?

非常感謝您的任何幫助。

+0

什麼是頁面ID的含義是什麼?什麼是事件ID?是事件ID是產品ID,並且您希望每個產品只在購物車中有一次? – Alex

+0

非常抱歉,我混淆了,它沒有頁面ID,它的一個事件ID(wordpress的一個插件),它是每個創建的事件頁面的唯一編號,對不起,我應該提到這一點。 – user1370288

+0

是的,你應該只能添加一個'事件'一次,即:不能添加相同的節日票兩次) – user1370288

回答

0

如果您將事件ID存儲在數組的鍵中,則可以避免雙重添加。

<?php 
session_start(); 
$_SESSION['event_orders'][ $_POST['event_id']] = true; 
?> 

現在的問題(S)是,當我加入

<?php 
session_start(); 
foreach($_SESSION['event_orders'] AS $event_id => $true){ 
echo 'Your ordered event ID is: ' .$event_id; 
} ?> 
+0

如果我使用此代碼,它打印ID的數值訂單 ID:0 ID:1 ID:2 ID:3 ID:4 ID:5(不管我是否點擊更多那麼) – user1370288