如果提交PHP时出现错误,请在复选框组中保持选中复选框


Keeping a Checkbox checked in a checkbox group if error on submit PHP

我有一组复选框,当出现提交错误时,我需要对它们进行检查。如果没有选择,它会验证并显示一个错误,但如果它postback,则不会保持选中的框。

HTML

<div class="fieldBox">
<div class="label"><p class="bold">Special Needs</p></div>
<div class="field"><?php echo $snMessage; ?>
<input type="checkbox" id="none" value="None" name="sNeeds[None]" <?php   echo(in_array('None',$sNeeds))?'checked="checked"':'';?> /><label for="none">   <span></span>None</label>
<input type="checkbox" id="IEP" value="IEP" name="sNeeds[IEP]" <?php echo(in_array('IEP',$sNeeds))?'checked="checked"':'';?> /><label for="IEP"><span></span>IEP</label>
<input type="checkbox" id="405" value="405" name="sNeeds[405]" <?php echo(in_array('405',$sNeeds))?'checked="checked"':'';?> /><label for="405"><span></span>405</label>
</div>
</div> 

PHP

$sNeeds = array('None', 'IEP', '405');
//Check Special Needs
if(empty($_POST['sNeeds'])) {
    $snMessage .= '<p class="errorClass">Required</p>';
}

我哪里错了?提前感谢您抽出时间!

// start session in your form page
<?php session_start(); ?>
    <input type="checkbox" id="none" value="None" name="sNeeds[]" <?php   echo(in_array('None',$_SESSION['form_values']))?'checked="checked"':'';?> /><label for="none">   <span></span>None</label>
    <input type="checkbox" id="IEP" value="IEP" name="sNeeds[]" <?php echo(in_array('IEP',$_SESSION['form_values']))?'checked="checked"':'';?> /><label for="IEP"><span></span>IEP</label>
    <input type="checkbox" id="405" value="405" name="sNeeds[]" <?php echo(in_array('405',$_SESSION['form_values']))?'checked="checked"':'';?> /><label for="405"><span></span>405</label>

在您的php代码中,在会话中保存$_POST,以防验证失败

<?php session_start();
if (validation_fails)
{
  $_SESSION['form_values'] = $_POST['sNeeds'];
  header("location: yourformpage.php");
}