复选框选中或取消选中布尔PHP的MySQL [英] Checkbox checked or unchecked boolean php mysql

查看:181
本文介绍了复选框选中或取消选中布尔PHP的MySQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图使这种形式与复选框获取值1或0,排序的Boolean和更新MySQL的,但我还没有找到一种方法呢。也许你可以提供帮助。我会发布的形式和接收它的code。我相信有可能是循环的冲突,但我trye​​d一切,不可能得到它的工作。韩国社交协会提前。

表格

 <形式的行动=esconde_cat.php方法=后>
    <表格的宽度=300像素ALIGN =中心WIDTH =140BORDER =1>
        &所述; TR>
            < TD>< / TD>
            < TD WIDTH =200> Categoria< / TD>
            < TD WIDTH =100> Mostrar< / TD>
        < / TR>
        < PHP
            包括conecta.php
            包括verifica.php            $ SQL =SELECT * FROM categorias ORDER BY ORDEM
            $解析度=的mysql_query($的SQL)或死亡(mysql_error());
            而($ linha = mysql_fetch_array($水库)){
        ?>
        &所述; TR>
            < TD><输入名称=用户[]类型=复选框VALUE =真/>< / TD>
            &所述; TD>&下; = $ linha ['1']; ?>< / TD>
            < TD><?PHP的如果($ linha ['3'] == TRUE){回声SIM卡; }其他{回声淖; }>< / TD>
            < / TD>
        < / TR>        < PHP
            }
        ?>
    < /表>
    < BR />
    <表ALIGN =中心>
        &所述; TR>
            &所述; TD>
                <输入类型=提交名称=删除类型=按钮值=Alterar>
            < / TD>
        < / TR>
    < /表>
< /表及GT;

code接收表和最新MYSQL

 < PHP包括conecta.php
包括verifica.php\\\\该零件,获取如果该复选框被选中,将其记录在数据库如果(使用isset($ _ POST ['用户'])){
    的foreach($ _ POST ['用户']为$关键=> $读取){
        $读=(@ $ _ POST ['用户'] =='0')? $ _ POST ['用户']:'1';
        回声$读取;
        $ SQL =UPDATE categorias SET mostrar ='$读'WHERE ORDEM ='$钥匙';
        $解析度=的mysql_query($的SQL)或死亡(埃罗AO excluir)。 mysql.error();
    }
}\\\\ ON THE code的这一部分,我不能得到的变量获得
\\\\值与CHEBOXES是UNCHECKED记录到数据库如果(!使用isset($ _ POST ['用户'])){
    的foreach($ _ POST ['用户']为$蔡夫=> $累啊){
        $累啊=(@ $ _ POST ['用户'] =='1')? $ _ POST ['用户']:'0';
        回声$累啊;
        $ SQL =UPDATE categorias SET mostrar ='$累啊'WHERE ORDEM ='$蔡夫';
        $解析度=的mysql_query($的SQL)或死亡(埃罗AO excluir)。 mysql.error();
    }
}?>


解决方案

如果一个复选框任其发展你会得到在 $ _ POST 变量NO键。如果它检查重点将设置和值将是复选框的值。

假设用户[]作品的名称,喜欢的东西:

 <输入类型=复选框名称=用户[]值=AA/>
<输入类型=复选框名称=用户[]值=BB检查=选中/>
<输入类型=复选框名称=用户[]值=CC检查=选中/>
<输入类型=复选框名称=用户[]值=DD/>
<输入类型=复选框名称=用户[]值=EE检查=选中/>

您期望 $ _ POST 是:

 阵列(
    用户= GT;阵列(
        1=> BB
        2=> CC
        4=> EE
    )
);

I am trying to make this form with checkboxes get values 1 or 0, sort of a boolean, and UPDATE it on mysql, but I havent found a way yet. Maybe you can help. I'll post the form and the code that receives it. I am sure there might be a conflict of loops, but I tryed everything and couldnt get it working. Tks in advance.

THE FORM

<form action="esconde_cat.php" method="post">
    <table width="300px" align="center" width="140" border="1">
        <tr>
            <td></td>
            <td width="200">Categoria</td>
            <td width="100">Mostrar</td>
        </tr>
        <?php
            include "conecta.php";
            include "verifica.php";

            $sql = "SELECT * FROM categorias ORDER BY ordem";
            $res = mysql_query($sql) or die (mysql_error());
            while ($linha=mysql_fetch_array($res)) {
        ?>
        <tr>
            <td><input name="user[]" type="checkbox" value="true"/></td>
            <td><?=$linha['1']; ?></td>
            <td><?php if ($linha['3'] == TRUE){ echo 'SIM'; } else {echo 'NÃO'; } ?></td>
            </td>
        </tr> 

        <?php 
            }
        ?>
    </table>
    <br/>
    <table align="center">
        <tr>
            <td>
                <input type="submit" name="Delete" type="button" value="Alterar">
            </td>
        </tr>
    </table>
</form>

THE CODE THAT RECEIVES THE FORM AND UPDATE MYSQL

<?php

include "conecta.php";
include "verifica.php";

\\THIS PART WORKS, GETS IF THE CHECKBOX IS CHECKED AND RECORD IT ON DB

if(isset($_POST['user'])) {
    foreach ($_POST['user'] as $key => $read){
        $read =(@$_POST['user']=='0')? $_POST['user']:'1';
        echo $read;
        $sql = "UPDATE categorias SET mostrar='$read' WHERE ordem='$key'";
        $res = mysql_query($sql) or die ("Erro ao excluir") . mysql.error();
    }
}

\\ON THIS PART OF THE CODE THAT I CANT GET THE VARIABLE TO GET THE
\\VALUE FROM CHEBOXES THAT ARE UNCHECKED RECORDED TO DATABASE

if (!isset($_POST['user'])) {
    foreach ($_POST['user'] as $chave => $leia) {
        $leia =(@$_POST['user']=='1')? $_POST['user']:'0';
        echo $leia;
        $sql = "UPDATE categorias SET mostrar='$leia' WHERE ordem='$chave'";
        $res = mysql_query($sql) or die ("Erro ao excluir") . mysql.error();
    }
}

?>

解决方案

If a checkbox is left unchecked you will get NO key in the $_POST variable. If it's checked the key will be set and the value will be the value of the checkbox.

Assuming a name of "user[]" works, with something like:

<input type="checkbox" name="user[]" value="aa" />
<input type="checkbox" name="user[]" value="bb" checked="checked" />
<input type="checkbox" name="user[]" value="cc" checked="checked" />
<input type="checkbox" name="user[]" value="dd" />
<input type="checkbox" name="user[]" value="ee" checked="checked" />

You would expect $_POST to be:

array(
    "user" => array(
        "1" => "bb"
        "2" => "cc"
        "4" => "ee"
    )
);

这篇关于复选框选中或取消选中布尔PHP的MySQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆