Php 选中或不选中多值复选框

Php 选中或不选中多值复选框,php,post,checkbox,Php,Post,Checkbox,大家好,我有一个带有5个复选框的表单,一旦我运行了帖子,我希望所有复选框都是当前状态 例如: 复选框1:打开 复选框2:关闭 checbox 3:on 复选框4:关闭 复选框5:关闭 这是我的代码,但它不适用于非on状态 <?php if(isset($_POST['submit'])){ $array = $_POST["check_list"]; } ?> <form action="" method="

大家好,我有一个带有5个复选框的表单,一旦我运行了帖子,我希望所有复选框都是当前状态

例如:

复选框1:打开 复选框2:关闭 checbox 3:on 复选框4:关闭 复选框5:关闭

这是我的代码,但它不适用于非on状态

    <?php

    if(isset($_POST['submit'])){
            $array = $_POST["check_list"];
    }

    ?>

    <form action="" method="post">
            <input type="checkbox" name="check_list[]"><label>Mon</label>
            <input type="checkbox" name="check_list[]"><label>Tue</label>
            <input type="checkbox" name="check_list[]"><label>Wed</label>
            <input type="checkbox" name="check_list[]"><label>Thu</label>
            <input type="checkbox" name="check_list[]"><label>Fri</label>
            <input type="submit" name="submit" Value="Submit"/>
    </form>

周一
星期二
结婚
清华大学
星期五
我如何才能得到所有的复选框与状态发送的邮件?
谢谢

value关键字可用于指定值:

硬编码值
$days=[‘星期一’、‘星期二’、‘星期三’、‘星期四’、‘星期五’];
如果(isset($_POST['submit'])){
$array=$\u POST[“检查列表”];
foreach($天作为$天){
$isChecked=in_数组($day,$array);
echo$day.“是”。($isChecked?'checked':'notchecked')。
; } } ?>
动态值 如果动态添加字段,则可以使用隐藏的输入。下面的代码段为每个可用选项添加了一个隐藏输入。然后可以使用这些隐藏的输入来确定是否存在关联的复选框,从而获取值

签出以下示例:

<?php

if(isset($_POST['submit'])){
    $options = $_POST["check_list_options"];
    $checkedValues = $_POST["check_list_values"];

    foreach ($options as $optionId){
        $isChecked = array_key_exists($optionId, $checkedValues);

        if($isChecked){
            echo 'option ' . $optionId . ' is checked and has value: '.$checkedValues[$optionId].'<br />';
        }else{
            echo 'option ' . $optionId . ' is not checked<br />';
        }
    }
}
?>

<form action="" id="checklist_form" method="post">
    <div class="results">

    </div>
    <button type="button" id="add_days">
        Add days
    </button>

    <input type="submit" name="submit" Value="Submit"/>
</form>
<script>
    var addDays = document.querySelector('#add_days');
    var form = document.querySelector('#checklist_form');
    var results = document.querySelector('.results');

    addDays.addEventListener('click', function(){
        var inputId = document.querySelectorAll('.input').length;

        results.innerHTML += '<input type="hidden" name="check_list_options[]" value="'+inputId+'" />' +
            '<input type="checkbox" name="check_list_values['+inputId+']" value="mon'+inputId+'" class="input" />' +
            '<label>Day '+inputId+'</label>' +
            '<br />';
    })
</script>

增加天数
var addDays=document.querySelector('add#u days');
var form=document.querySelector(“#检查表_form”);
var results=document.querySelector('.results');
addDays.addEventListener('click',function(){
var inputId=document.querySelectorAll('.input').length;
results.innerHTML+=“”+
'' +
“日”+inputId+“”+
“
”; })
您可以为每个复选框指定一个名称,或在复选框名称中添加一个键,然后创建一个包含每个复选框名称的数组,如果设置了等效复选框,则在循环中进行检查:

    $checkboxes = ['checkbox 1', 'checkbox 2', 'checkbox 3', 'checkbox 4', 'checkbox 5'];

    if(isset($_POST['submit'])){
            foreach($checkboxes as $key=>$value) {

                echo $value.': ';
                if(isset($_POST["check_list"][$key])) echo 'on '; else echo 'off ';
            }
    }

    ?>

    <form action="" method="post">
            <input type="checkbox" name="check_list[0]"><label>Mon</label>
            <input type="checkbox" name="check_list[1]"><label>Tue</label>
            <input type="checkbox" name="check_list[2]"><label>Wed</label>
            <input type="checkbox" name="check_list[3]"><label>Thu</label>
            <input type="checkbox" name="check_list[4]"><label>Fri</label>
            <input type="submit" name="submit" Value="Submit"/>
    </form>
$checkboxes=[“复选框1”、“复选框2”、“复选框3”、“复选框4”、“复选框5]”;
如果(isset($_POST['submit'])){
foreach($key=>$value的复选框){
echo$value.':';
如果(isset($_POST[“检查列表”][$key])回显“开”,否则回显“关”;
}
}
?>
周一
星期二
结婚
清华大学
星期五

问题在于,我用一个按钮添加了另一个由这5个复选框组成的列表,并为动态表单元素添加了一个示例@马尔基乌
    $checkboxes = ['checkbox 1', 'checkbox 2', 'checkbox 3', 'checkbox 4', 'checkbox 5'];

    if(isset($_POST['submit'])){
            foreach($checkboxes as $key=>$value) {

                echo $value.': ';
                if(isset($_POST["check_list"][$key])) echo 'on '; else echo 'off ';
            }
    }

    ?>

    <form action="" method="post">
            <input type="checkbox" name="check_list[0]"><label>Mon</label>
            <input type="checkbox" name="check_list[1]"><label>Tue</label>
            <input type="checkbox" name="check_list[2]"><label>Wed</label>
            <input type="checkbox" name="check_list[3]"><label>Thu</label>
            <input type="checkbox" name="check_list[4]"><label>Fri</label>
            <input type="submit" name="submit" Value="Submit"/>
    </form>