2012-05-20 24 views
1

我試圖保持複選框的列表選中,直到帖子有效且沒有錯誤。以下是我正在使用的代碼。我會感謝任何幫助。保持關聯數組複選框選中

 <?php foreach ($drinks_checkbox as $option => $options){ ?> 

    <input type='checkbox' id='drinks[]' name='drinks[]' value='<?php echo $option;?>' <?php if(!empty($_POST['drinks'])){if($_POST['drinks']==$option){ echo "checked='checked'" ; }}?> /><?php echo $options;?><br /> 
    <?php } ?> 

我可以使用內爆但是我需要幫助上述成功顯示選中的複選框..

回答

0

$ _POST [「飲料」]是一個數組。此外,id的值並不需要是 '飲料[]'

嘗試是這樣的:

$drinksIndex = 0; 
$drinksPost = $_POST['drinks']; 
foreach ($drinks_checkbox as $option => $options){ ?> 

    <input type='checkbox' id='drinks<?php echo $drinksIndex; ?>' name='drinks[<?php echo $drinksIndex; ?>]' value='<?php echo $option;?>'<?php 
    if(!empty($drinksPost[$drinksIndex])) echo " checked='checked'"; 
    $drinksIndex++; 
?> /><?php 
echo $options;?><br /> 
<?php 
} ?> 

修訂空($ drinksPost [$ drinksIndex])部分,改爲聯想!

如果這不起作用,您可以包括$ drinks_checkbox

+0

謝謝!如果選中所有複選框,則工作正常,但會向未檢查的錯誤發出錯誤。注意:未定義偏移量:第1行C:\ wamp \ www \ easyform \ register_form.php 133行 – dan

+0

Hmm yes - 更改計數($ drinksPost)爲!empty($ drinksPost [$ drinksIndex]) - 我將修改上述。如果你是新來的人,那麼習慣性地投票答案,如果它是你所追求的:) – Sp4cecat

+0

這是什麼發生,如果我檢查所有的複選框,然後他們保持檢查如果我只檢查幾個,然後只有第一個保持檢查。 – dan