在PHP表单中保持复选框处于选中状态

在PHP表单中保持复选框处于选中状态,php,forms,checkbox,checked,Php,Forms,Checkbox,Checked,我知道当表单提交出现错误时,如何保持复选框处于选中状态,但我现在有一个不同的问题。我使用相同名称的复选框,人们可以单击1或多个复选框。我希望它只保留用户选中的复选框,如果出现问题,例如如果他们选中q1 a q1B而不是q1c,我只希望q1 a和q1B在重新加载错误时显示选中。现在出现错误时,将选中所有同名复选框。我尝试将名称更改为q1[],但没有成功。请你看一下,让我知道如何解决这个问题好吗 这是我的密码 <tr> <td style="width: 124px" cl

我知道当表单提交出现错误时,如何保持复选框处于选中状态,但我现在有一个不同的问题。我使用相同名称的复选框,人们可以单击1或多个复选框。我希望它只保留用户选中的复选框,如果出现问题,例如如果他们选中q1 a q1B而不是q1c,我只希望q1 a和q1B在重新加载错误时显示选中。现在出现错误时,将选中所有同名复选框。我尝试将名称更改为q1[],但没有成功。请你看一下,让我知道如何解决这个问题好吗

这是我的密码

    <tr>
<td style="width: 124px" class="style15">Tape Recorder<?php    if(isset($problems['tape[]'])) {?><font color="red">*</font><?php } ?></td>
<td class="style9"> 
    <input name="tape[]" id="tape1" type="checkbox" value="used before," <?php   if(isset($_POST['tape[]'])) echo "checked"; ?> 
  </td>
<td class="style9"> 
    <input name="tape[]" id="tape2" type="checkbox" value="helpful in past,"        <?php   if(isset($_POST['tape[]'])) echo "checked"; ?> </td>
<td class="style9"> 
    <input name="tape[]" id="tape3" type="checkbox" value="requesting from DACC" <?php if(isset($_POST['tape[]'])) echo "checked"; ?> </td>
<td class="style9"> 
    <input name="tape[]"  id="tape4" type="checkbox" value="NA" <?php if(isset($_POST['tape[]'])) echo "checked"; ?></td>
 </tr>
  <tr>
        <td style="width: 124px">Note Taker <?php if(isset($problems['note'])) {?>      <font color="red">*</font><?php } ?></td>
<td class="style9"> 
        <input name="note" type="checkbox" value="used before," <?php if(isset($_POST['note'])) echo "checked"; ?> 
</td>
<td class="style9"> 
    <input name="note" type="checkbox" value= "been helpful in the past," <?php if(isset($_POST['note'])) echo "checked"; ?> 
<td class="style9"> 
    <input name="note" type="checkbox" value= "requesting from DACC" <?php if(isset($_POST['note'])) echo "checked"; ?> 
<td class="style9"> 
    <input name="note" type="checkbox" value="NA" <?php if(isset($_POST['note'])) echo "checked"; ?> 
</tr>

录音机*
记录员*

复选框不需要相同的名称,只需要单选按钮


单选按钮属于一个组,因此它们必须具有相同的名称但值不同。但是,复选框可以为每个复选框指定不同的名称!因此,只需将每个复选框更改为不同的名称即可

快速而肮脏的解决方案是:

<input name="tape[]"  id="tape[]" type="checkbox" value="NA" <?php if(isset($_POST['tape']) && is_array($_POST['tape']) && in_array('NA', $_POST['tape'])) echo 'checked="checked"'; ?> />
谢谢你,code先生
这是我的最后一个代码,多亏了你,我才弄明白

$mailBody .= "They requested additional information on ...\n\n";
$mailBody .= $moreinfo = join("\n", $_REQUEST["moreinfo"]);
$mailBody .= "\n\n";
$mailBody .= "They also had this to say...\n\n";
$mailBody .= "$comments\n\n";
//第页上的代码

<input type="checkbox" name="moreinfo[selection1]" value="selection1" <?php if(isset($_POST['moreinfo']) && is_array($_POST['moreinfo']) && in_array('selection1', $_POST['moreinfo'])) echo 'checked="checked"'; ?> />  Selection 1<br>

<input type="checkbox" name="moreinfo[selection2]" value="selection2" <?php if(isset($_POST['moreinfo']) && is_array($_POST['moreinfo']) && in_array('selection2', $_POST['moreinfo'])) echo 'checked="checked"'; ?> />  Selection 2<br>

<input type="checkbox" name="moreinfo[selection3]" value="selection3" <?php if(isset($_POST['moreinfo']) && is_array($_POST['moreinfo']) && in_array('selection3', $_POST['moreinfo'])) echo 'checked="checked"'; ?> />  Selection 3<br>
/>选择2

单选按钮必须具有相同的名称才能成为组的成员,但对共享名称的其他控件没有任何限制。重新编辑:不需要更改名称,并且可以轻松地在循环中处理一组复选框。谢谢,昆汀。现在就开始研究这个话题!鉴于yehuda表单的类型,我需要复选框的名称相同,否则处理电子邮件部分会很麻烦。MrCode,那不起作用它给了我PHP解析错误:语法错误,第767行的C:\Inetpub\wwwroot\DACC\ssc\aconfications3.php中出现意外的T_ECHO,这是这一行
code
很抱歉,无法找出我在使用迷你降价时的错误,没有使用muchI有相同的问题,请查看此