0

我有一个checkboxes由 a 创建的列表,while loop但是在提交表单时checkboxes被清除。我试图unique id通过将记录中的值放在隐藏字段中,然后if query在标记checkbox为选中之前使用它,但它什么也没做

<?php 
    while($row = mysqli_fetch_array($result)){
    $posted = $row['auditID'];
?>
 <tr class="hover">
    <td width="180"><? echo $row['auditName']; ?>
       <input type="hidden" name="audit_id_confirm" value="<? echo $row['auditID'];?>">
    </td>
    <td width="33"><input type="checkbox" name="audit_selected[]"
       value="<? echo $row['auditID'];?>" 
       <?php if($_POST['audit_id_confirm'] == $posted){ echo "checked"; }?>>
    </td>  
 </tr>
<?php
    }
?>
4

3 回答 3

4

我通过检查 id=f 对它进行排序,id 号在已发布的数组中。

<?php
    $selected = $_POST['audit_selected'];

    while($row = mysqli_fetch_array($result)){
        $audit = $row['auditID'];
        if(in_array($audit, $selected)) {
               $check="checked='checked'";
        }else{
           $check = '';
        } ?>
        <tr class="hover">
            <td width="180">
                <?php echo $row['auditName'].' '.$num_audited; ?></td><td width="33">    <input type="checkbox" name="audit_selected[]" value="<?php echo $row['auditID'];?>" <?php echo $check; ?> >
            </td>  
        </tr>
    <?php }
?>
于 2013-09-07T19:18:03.557 回答
0

您需要存储在表中的信息之一是复选框的状态。因此,您可以在表中创建一个新列,将其称为“checkboxstate”。现在在您的代码中使用以下代码插入复选框:

<input type="checkbox" name="<?php echo($posted); ?>">

到目前为止,我们已经创建了几个名称与 $posted 相同的复选框,换句话说,每个复选框将具有其行的“$posted”值的名称。

现在唯一剩下的就是提交表单并存储复选框信息,这将返回 TRUE 或 FALSE,我们将其保存在表中的“checkboxstate”列中。

所以现在在我们的表中,我们将有一堆包含几列的行,其中一列将是“checkboxstate”,其值为 TRUE 或 FALSE。

至此我们已经基本解决了这个问题,剩下的就是插入一个简单的 if 来显示选中的复选框或未选中的复选框。

<?php
while($row = mysqli_fetch_array($result)){
$posted = $row['auditID'];
$cbs = $row['checkboxstate'];
?>
<tr class="hover">
<td width="180"><? echo $row['auditName']; ?></td>
<td width="33">
<?php if($cbs == "true") echo "<input type='checkbox' name='$posted' checked='checked'>"; else echo "<input type='checkbox' name='$posted'>"; 
</td>  
</tr>
<?php
}
?>
于 2013-09-07T18:32:56.927 回答
0
<?php if($_POST['audit_id_confirm'] == $posted){ echo "checked"; }?>>

将上面的行替换为:

<?php if($_POST['audit_id_confirm'] == $posted){ echo "checked='checked'"; }?>>

您没有正确地为checkedHtml 实体提供属性。

于 2013-09-07T18:12:30.677 回答