具有相同名称的复选框数组的多个值(1或0)

时间:2015-08-19 20:35:18

标签: php sql arrays checkbox mysqli

想知道为复选框设置默认值的最佳方法。我希望在选中时值为0,在未选中时为1。 我无法使用"输入类型="隐藏"名称=" chk_name []"值=" 1" "因为数组。它使我的阵列加倍。 如果我在使用isset后尝试设置它,它就不会将它放入我的数组中。

我有多个数组,并希望匹配它们,以便所有数组[0]一起更新和数组[1]等等,所以缺少值会混淆它。

那么我怎样才能将1放入数组中以备不检查的地方?

Form:

<?php
require_once ("con.php");


$p=payment();

$result = mysqli_query($mysqli,$p);


while($res=mysqli_fetch_array($result))
{



?>

<tr>

    <td class="paid">
        <input type="hidden" value="1" name="paid[<?php echo $res['name'];?>]">
        <input type="checkbox" value="0" name="paid[<?php echo $res['name'];?>]"

            <?php 
                if($res["paid"]==0)
                {
                echo "checked";
                }               
            ?>>

    </td>
    <td class="active">
         <input type="hidden" value="1" name="active[<?php echo $res['name'];?>]">
        <input type="checkbox" value="0" name="active[<?php echo $res['name'];?>]" 
            <?php 
                if($res["active"]==0)
                {
                    echo "checked";
                }        
            ?> >
    </td>


        <input type="hidden" name="ID[<?php echo $res['name'];?>]" value="<?php echo $res['ID']; ?>">


</tr>
<?php } ?>
<tr>
<td>
<input type="submit" name="submit" value="Update">
</td>
</tr>

</table>
</form>

    </body>
</html>

php:

$paid=$_POST['paid'];
$active=$_POST['active'];


foreach($_POST as $key=>$value) 
{
    $ID=$ID[$key];
    $paid=$paid[$key];
    $active=$active[$key];

$up=updatePayment($paid,$active,$ID);
$r = mysqli_query($mysqli,$up); 
echo "Information stored successfully";

}

?>

my function:

function updatePayment($paid,$active,$ID)
{
    $uc="UPDATE
            `company`
        SET
            `paid`='$paid',
            `active`='$active'
        WHERE
            `ID`='$ID'";

    return $uc;
}

:更新了代码:

我可以看到阵列现在已经很好了。隐藏的方法有效。

感谢大家的帮助!

1 个答案:

答案 0 :(得分:0)

一旦隐藏字段和复选框具有相同的名称,无论名称是否为数组,它都将起作用。

这样做的简单原因是,如果取消选中,则不会发布复选框值。

尝试使用此代码,您将看到结果

<pre>
<?php
    print_r($_POST);
?>
</pre>
<form method="POST">
    <input type="hidden" name="fields[1]" value="1"/>
    <input type="checkbox" name="fields[1]" value="0"/>

    <input type="hidden" name="fields[2]" value="0"/>
    <input type="checkbox" name="fields[2]" value="1"/>

    <input type="hidden" name="fields[3][something][else]" value="3"/>
    <input type="checkbox" name="fields[3][something][else]" value="3"/>

    <button type="submit">Submit</button>
</form>