2013-10-30 51 views
0

即時通訊使用此功能可以在會話中存儲我對錶單的選擇,以便在用戶返回表單的另一頁時可以調用它們。在會話中存儲複選框選擇,不會讓我不選擇任何東西

問題我有它總是必須有1選擇。如果我勾選Jam,然後取消勾選Jam並選中可以正常工作的黃油,但是如果我取消選中所有內容,則不會清除陣列。

由於某些原因,它總是必須至少有1個條目?

foreach($_POST as $key => $value) { 
    $_SESSION[$key] = $value; 
} 

這是checkbox代碼:

<inputtype="checkbox name="<?php echo $course_menuname."extras[]"; ?>" <?php if(in_array("$extraitems", $_SESSION[$course_menuname.'extras'])) { echo "checked"; } ?> value="<?php echo $extraitems; ?>" id="checkbox"> 

變量如下:

$ extraitems包含 「吐司額外」 字,如卡紙, Butter and Flora $ course_menuname包含諸如「breakfast_cereal」,「breakfa st_toast「,那麼如果它有額外的單詞,它會在下面顯示覆選框。

這是形式:

enter image description here

回答

0

你爲什麼不明確地告訴PHP來取消該數組,如果$ _POST是空的,像這樣

<?php 
if(empty($_POST)) 
    unset($_SESSION); 
?> 

0

通常情況下,表單不會爲未選中的複選框發送數據。要清除所有可能只檢查是否沒有值檢查,如果是這種情況清除會話值。您可以嘗試將這些動態複選框存儲在會話的子數組中,這樣您就可以清除一個會話變量。例如:

foreach($_POST as $key=>$val) 
{ 
    $_SESSION[$course_menuname.'extras'][$key] = $val; 
} 

您擁有表單名稱的方式可以幫助您找到這些缺失的值。你可以做一個檢查,如果數組元素設置爲例如:

if(!isset($_POST[$course_menuname.'extras')) 
    unset($_SESSION[$course_menuname.'extras']); 
+0

我似乎無法得到它的工作:( – Exoon

相關問題