2012-06-29 159 views
0

我在頁面上有一個按鈕,它是一個簡單的輸入提交按鈕,它將頁面ID發送到另一頁上的窗體以將其保存在PHP會話中。從會話中刪除項目(顯示刪除按鈕)

我想知道如何去顯示刪除按鈕,而不是如果該項目已在您的會話?

這是一個形式被髮送到

<?php 
session_start(); 
if(!in_array($_POST['event_id'], $_SESSION['event_orders'])) { 
    $_SESSION['event_orders'][] = $_POST['event_id']; 
} 
?> 

頁與按鈕實際上沒有任何會話代碼的代碼,但我想這將是一個類似的IF一種說法,但我我不確定我應該使用的確切語法?如何將ID從會話中除去?

編輯:

會這樣的工作?放置表單按鈕。

<? if(isset($_SESSION['event_orders'])) 
{ 
    echo "<a href='".$_SERVER['PHP_SELF']."?delete'>delete</a>"; 
} 
else if(!in_array($_POST['event_id'], $_SESSION['event_orders'])) { 
    // echo the submit button; 
} ?> 

回答

0
<?php 
session_start(); 
//if request parameter delete is present then unset the array 
if(isset($_REQUEST['delete'])) 
{ 
    unset($_SESSION['event_orders']); 
} 
else if(isset($_SESSION['event_orders'])) 
{ 
    //displays delete link which redirects to same page with an additional request parameter as url?delete 
    echo "<a href='".$_SERVER['PHP_SELF']."?delete'>delete</a>"; 
} 
else if(!in_array($_POST['event_id'], $_SESSION['event_orders'])) { 
    $_SESSION['event_orders'][] = $_POST['event_id']; 
} 
?> 

編輯: 我們只需要刪除特定的陣列項目,而不是完全unseting陣列。

<?php 
session_start(); 
//if request parameter delete is present then unset the array 
if(isset($_REQUEST['delete'])) 
{ 
    unset($_SESSION['event_orders'][$_REQUEST['delete']]); 
    var_dump($_SESSION['event_orders']); 
} 
else if(in_array($_POST['event_id'], $_SESSION['event_orders'])) 
{ 
    //displays delete link which redirects to same page with an additional request parameter as url?delete 
    $key = array_search($_POST['event_id'], $_SESSION['event_orders']); 
    var_dump($_SESSION['event_orders']); 
    echo "<a href='".$_SERVER['PHP_SELF']."?delete=".$key."'>delete</a>"; 
} 
else 
{ 
    $_SESSION['event_orders'][] = $_POST['event_id']; 
    var_dump($_SESSION['event_orders']); 
} 
?> 
+0

此代碼有效但不確定是否適合我的場景。 堅持仍寫作答覆2秒 我已經使用過這個,當它把我帶到session.php(表單發送到),它顯示一個刪除按鈕,如果ID是在會議(這是偉大的),但我希望該按鈕出現在表單頁面上(目前只是一個提交按鈕,就像這樣的工作(我將在主要帖子中更新) – user1370288