【问题标题】:Multiple checkbox selected in a loop PHP在循环PHP中选择了多个复选框
【发布时间】:2018-06-19 21:44:32
【问题描述】:

我有一个循环向用户提供几个复选框:

<?php
while($personInfo = $selectPerson->fetch())
{
?>

    <label>
    <input type="checkbox" name="checkBoxValue[]" id="checkBoxValue" value="<?= $personInfo['title'] ?>"> <?= $personInfo['title'] ?>&nbsp&nbsp&nbsp
    </label> | 
    <label>
    <input type="checkbox" name="improper" id="improper" value="0"> Improper
    </label>
    <hr>

<?php
}
?>

问题是我设法恢复用户选择的每个复选框:

foreach($_POST['checkBoxValue'] as $selected)
{
    echo $selected;
    echo "<hr>";
}

但我不知道如何知道每个选中的复选框是否也选中了“不正确”复选框。

【问题讨论】:

  • checkBoxValue 一样,name="improper[]"
  • 连同@DarkBee ans.确保您的ID是唯一的。这不是你的情况。
  • @DarkBee 嗯,除非未选中复选框,否则它们不会返回给 PHP。因此,如果第一个复选框 checkboxValue 被选中,第二个复选框 improper 被选中,它们都将在 [0]'th 出现时返回,从而导致主要的混淆和错误
  • 嗯,实际上最好通过更改&lt;input type="checkbox" name="checkBoxValue[&lt;?= $personInfo['id'] ?&gt;]" id="checkBoxValue_&lt;?= $personInfo['id'] ?&gt;"&gt; 来指示哪个复选框属于哪个人 - 然后你可以使用isset 与人的ID相结合的检查
  • 谢谢,但我不知道此人的 ID..

标签: php html loops checkbox


【解决方案1】:
<form method="post" action="#" name="stackOverflow">
<?php
$personInfo = [['id' => 2,  'title' => "Bernard"], [ 'id' => 3, 'title' => "Marc"]];
foreach ($personInfo as $info) {
    ?>
    <label>
        <input type="checkbox" name="checkBoxValue[<?php echo $info["id"] ?>]" id="checkBoxValue<?php echo $info["id"]; ?>" value="<?= $info['title'] ?>"
            <?php if (isset($_POST['checkBoxValue'][$info["id"]])) { ?>
                checked
            <?php } ?>
        >
        <?= $info['title'] ?>&nbsp&nbsp&nbsp</label> | <label>
        <input type="checkbox" name="improper[<?php echo $info["id"] ?>]" id="improper_<?php echo $info["id"]; ?> "
            <?php if (isset($_POST['improper'][$info["id"]]) && "on" === $_POST['improper'][$info["id"]]) { ?>
                checked
            <?php } ?>
        >
        Improper
    </label>
    <hr>
    <?php
}
?>
<input id="submit" type="submit" name="btn_validation" value="submit">

【讨论】:

    猜你喜欢
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多