遍历所有复选框,在 PHP 中选中或取消选中

我的问题是下面的代码更改了选中项的值,但索引 i 仅分配给选中项。我希望它通过所有复选框。例如,如果第一个和最后一个复选框被选中,我得到的job[0]是“是”和job[1]“是”,其余的是“否”,而我应该为job[0]和得到“是” job[4]。


代码如下:


if(!empty($_POST['job'])){


        $i = 0;

        $jobArray = array("no","no","no","no","no");


        // Loop to store and display values of individual checked checkbox.

        foreach($_POST['job'] as $selected){

            $jobArray[$i] = "yes";

            $i++;

        }

    } //$_POST['job']


红糖糍粑
浏览 124回答 1
1回答

慕的地10843

问题是复选框值只有在被选中时才会存在于您的请求中。你应该记住它。因此,您可以更改您的应用程序逻辑来处理它。但是,如果您真的需要一个包含“是”、“否”值的数组,只需创建它即可。假设您像这样创建复选框:&nbsp; &nbsp; <?php for ($i = 0; $i < 10; $i++): ?>&nbsp; &nbsp; &nbsp; &nbsp; <input type="checkbox" name="job[<?= $i ?>]" value="yes">&nbsp; &nbsp; <?php endfor; ?>然后,在您的代码中:&nbsp; &nbsp; $jobs = [];&nbsp; &nbsp; for ($i = 0; $i < 10; $i++) {&nbsp; &nbsp; &nbsp; &nbsp; $jobs[$i] = $_POST['job'][$i] ?? 'no';&nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP