2013-10-30 83 views
0

我得到了3部分表單,並且我想將用戶選擇存儲在會話中,這樣如果他們需要返回並更改他們可以選擇的選擇。記住會話中的每個複選框選擇

表單由單選按鈕和複選框組成。我有它的單選按鈕他們存儲在一個會話,所以它總是記得。

我不知道如何去複選框,因爲它們存儲在一個數組中。

這是我的形式:

enter image description here

所以,當他們選擇果醬和弗洛拉,我得到這樣

Array ([0] => Jam [1] => Flora) 

此數組是我的複選框:

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

所以我需要一個會話來存儲他們選擇的每個值然後如果它的第一個您選擇了複選框。

希望這是有道理的。

感謝

+0

$ _SESSION [$ course_menuname]和$ extraitems中的內容是什麼? – TiMESPLiNTER

+0

$ _SESSION [$ course_menuname]有像「breakfast_cereal」和「breakfast_toast」和「breakfast_toastextras」這樣的課程,$ extraitems中有每個額外內容,比如「jam」,「butter」和「flora」使用單選按鈕,這只是一個例子,我不知道如何處理它的多個選擇 – Exoon

+0

嘗試'in_array' http://php.net/manual/en/function.in-array.php – cmorrissey

回答

0

我也從同樣的問題的痛苦,下面的解決方案工作對我很好,使用前適當的修改,

<input type='checkbox' name='list[0]' id='product' value='Product'></input> 
<input type='checkbox' name='list[1]' id='product' value='Product'></input> 

這裏我設置我的變量與複選框的POST。

$checkboxes = $_POST['list']; 
$_SESSION['list'] = $checkboxes; 

並使用foreach,所以我們知道在$_SESSION['list']我們只有檢查過!

foreach ($_SESSION['list'] as $key => $value) 
    { 

      echo '<input type="checkbox" name="list['$key']" value="'.$value.'" checked="checked >';   
    }