Php 通过$\u POST将值从复选框获取到数组

Php 通过$\u POST将值从复选框获取到数组,php,Php,我的HTML视图在foreach中有一个带有的复选框(循环3次) $data['module']给出以下结果 如果选中第一个复选框:Array([0]=>1) 如果选中第二个复选框:Array([0]=>2) 但我希望数组结果如下所示 ->数组([0]=>1[1]=>2]=>) ->数组([0]=>[1]=>1[2]=>) 请帮助我实现这一点 为每个没有值或值为0的复选框添加一个隐藏字段 按如下方式操作:- <div class="checkbox"> <label&g

我的HTML视图在foreach中有一个带有的复选框(循环3次)

$data['module']
给出以下结果

  • 如果选中第一个复选框:
    Array([0]=>1)
  • 如果选中第二个复选框:
    Array([0]=>2)
  • 但我希望数组结果如下所示

  • ->
    数组([0]=>1[1]=>2]=>)
  • ->
    数组([0]=>[1]=>1[2]=>)

  • 请帮助我实现这一点

    为每个没有值或值为0的复选框添加一个隐藏字段

    按如下方式操作:-

    <div class="checkbox">
        <label>
            <input type="hidden" value="" name="module[<?php echo $i;?>]"><!-- you can use value='0' also based on your wish -->
            <input type="checkbox" name="module[<?php echo $i;?>]" id="module<?php echo $i ?>" value="<?php echo $row['id'] ?>"><?php echo $row['name']." (".$row['code'].")"; ?>
        </label>
    </div>
    
    
    
    在my local上输出一些硬代码值:-

    我选择的是:


    提交后得到的信息:-

    为每个没有值或值为0的复选框添加一个隐藏字段

    按如下方式操作:-

    <div class="checkbox">
        <label>
            <input type="hidden" value="" name="module[<?php echo $i;?>]"><!-- you can use value='0' also based on your wish -->
            <input type="checkbox" name="module[<?php echo $i;?>]" id="module<?php echo $i ?>" value="<?php echo $row['id'] ?>"><?php echo $row['name']." (".$row['code'].")"; ?>
        </label>
    </div>
    
    
    
    在my local上输出一些硬代码值:-

    我选择的是:


    提交后得到的内容:-

    将索引添加到复选框的名称中

    <?php 
    $i = 1;
    foreach($management_module AS $row){
    ?>
    <div class="checkbox">
    <label>
        <input type="checkbox" name="module[<?php echo $i ?>]" id="module<?php echo $i ?>" value="<?php echo $row['id'] ?>"><?php echo $row['name']." (".$row['code'].")"; ?>
    </label>
    </div>
    $i++ }?>
    
    
    $i++}?>
    
    将索引添加到复选框的名称中

    <?php 
    $i = 1;
    foreach($management_module AS $row){
    ?>
    <div class="checkbox">
    <label>
        <input type="checkbox" name="module[<?php echo $i ?>]" id="module<?php echo $i ?>" value="<?php echo $row['id'] ?>"><?php echo $row['name']." (".$row['code'].")"; ?>
    </label>
    </div>
    $i++ }?>
    
    
    $i++}?>
    
    您可以直接将复选框
    name
    属性设置为行的id(其值设置为
    1
    ),如下所示:

    <input type="checkbox" name="module[<?php echo $row['id'] ?>]" id="module<?php echo $i ?>" value="1"><?php echo $row['name']." (".$row['code'].")"; ?>
    

    您可以直接将复选框
    name
    属性设置为行的id(其值设置为
    1
    ),如下所示:

    <input type="checkbox" name="module[<?php echo $row['id'] ?>]" id="module<?php echo $i ?>" value="1"><?php echo $row['name']." (".$row['code'].")"; ?>
    
    试试这个:

    $module= $_POST['module'];
    $size= count($module);
    
    $i = 0;
    while ($i < $size) {
        $arraymodule[] = '$module[$i]';
        ++$i;
    }
    
    $module=$\u POST['module'];
    $size=计数($module);
    $i=0;
    而($i<$size){
    $arraymodule[]='$module[$i]';
    ++$i;
    }
    
    试试这个:

    $module= $_POST['module'];
    $size= count($module);
    
    $i = 0;
    while ($i < $size) {
        $arraymodule[] = '$module[$i]';
        ++$i;
    }
    
    $module=$\u POST['module'];
    $size=计数($module);
    $i=0;
    而($i<$size){
    $arraymodule[]='$module[$i]';
    ++$i;
    }
    
    $i
    从1开始,而OP想要0索引结果。@roberto06为true,但我不知道他是否有使用1索引的js代码。所以在他说点什么之前我就不谈了。感谢您指出。另外,这些值将与键相同,而不是
    1
    。尽管如此,这并不是一个糟糕的解决方案,但您应该包括PHP处理,因为它与OP已有的截然不同。
    $i
    从1开始,而OP想要0索引的结果。@roberto06 true,但我不知道他是否有使用基于1的索引的js代码。所以在他说点什么之前我就不谈了。感谢您指出。另外,这些值将与键相同,而不是
    1
    。尽管如此,这并不是一个糟糕的解决方案,但您应该包括PHP处理,因为它与OP已有的处理方法有很大不同。额外隐藏的输入是什么?@bassxzero当使用它时,不勾选复选框,那么它的值将变为0或空。这很有效,谢谢你。如果是我的票;)@tenten很高兴为您提供帮助。::):)额外的隐藏输入用于什么?@bassxzero它用于在使用时不选中复选框,那么它的值将变为0或空。这很有效,谢谢你。如果是我的票;)@很高兴能帮助你。:):)