检查是否在php中选中了复选框

时间:2012-04-03 14:08:25

标签: php mysql html

我有一个复选框列表,我用表中的数据填充它。这是代码:

<?php
mysql_connect("localhost","root","");
mysql_select_db("erp");


$a="Select * from magazine";
$b=mysql_query($a);

$c=mysql_fetch_array($b);

while($c=mysql_fetch_array($b))

     {
            print '<input type="checkbox"/>'.$c['den_mag'];
            echo "</br>";

            }
    if(isset($_POST['den_mag']))

{
      echo "aaaa";

}     
?>

这是一个简单的查询,每个数据只显示一个复选框。现在我想要的是当我按一个复选框时,该复选框的值将显示在一个表中。如果我的check1值为a,check2使用值b和我检查check1要输出到表行的值。如何实现?我如何得到哪个复选框?

3 个答案:

答案 0 :(得分:2)

<input name="test" type="checkbox" />


<?php

    if(isset($_REQUEST['test'])){
        // selected
    }

?>

当你给输入类型元素(input,textarea,select,button)一个name属性(就像我做的那样)时,浏览器会将元素的状态/值提交给服务器(如果已经提交了包含的表单) )。


如果是复选框,您实际上不需要检查值,只是它存在。如果未选中该复选框,则不会设置该复选框。


此外,您需要了解客户端 - 服务器流。如果客户端没有发送它,PHP无法检查。

最后,有人提到了jQuery。 jQuery是简单的javascript ,可能还有一些额外的糖。但问题是,理论上您可以使用jQuery更改内容,以便随请求提交(或不获取)。例如,你可以在提交表单之前让jQuery销毁复选框(在这种情况下不会发送复选框)。

答案 1 :(得分:2)

一些注意事项:

  • 尽量避免使用SELECT *个查询。选择您要使用的字段:

    $ sql ='     选择         id,         den_mag     从         magazine “;

  • 使用更好的变量名称。 $a$c会让您的代码更难以为他人效仿,并且当您稍后再回来时也会为您自己。使用更具描述性的变量名称,例如$query_object$row。你的代码应该读起来就像一篇描述你正在做的事情的文章。

  • 在表单中,使用元素数组。通过为输入提供类似selected_magazines[]的名称,您最终会在帖子数据中找到一个数组,这就是您想要的 - 多个选择

  • 使用行ID作为复选框元素的值。 POST中的数组将是用户选择的所有ID的列表

  • 将您的逻辑与HTML生成分开。脚本的顶部应该处理所有逻辑和决策。在底部,输出您的HTML并避免做出逻辑决策。它使脚本更易于遵循和维护,以及调试。

以下是将这些想法与您提供的详细信息相结合的示例脚本:

<?php
    // FILE: myfile.php

    mysql_connect("localhost","root","");
    mysql_select_db("erp");

    if(isset($_POST['selected_magazine'])) {

        // $_POST['selected_magazine'] will contain selected IDs

        print 'You selected: ';
        print '<ul><li>'.implode($_POST['selected_magazine'], '</li><li>').'</li></ul>';
        die();
    }

    $sql= '
        SELECT 
            `id`,
            `den_mag` 
        FROM
            `magazine`
    ';
    $query_object=mysql_query($sql);

    $checkboxes = array();
    while($row = mysql_fetch_array($query_object)) {
        $checkboxes[] = '<input name="selected_magazine[]" value="'.$row['id'].'" type="checkbox" /> '.$row['den_mag'];
    }
?>
<form action="myfile.php" method="post">
    <?php print implode('<br>', $checkboxes); ?>
    <input type="submit" value="Submit" />
</form>

答案 2 :(得分:1)

你走了:

<html>
    <input name="test" value="true" type="checkbox" />
</html>

<?php
$Checkbox1 = "{$_POST['test']}";

if($Checkbox1 == 'true'){
    // yes, it is checked
}
?>