2012-04-03 114 views
0

检查我有一个复选框列表,我从我的table.Here填充数据是代码:检查复选框在PHP

<?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"; 

}  
?> 

这是一个简单的查询,并为每个数据只是显示它一个复选框。现在我想要的是,当我按复选框时,该复选框的值将显示在表中。因此,如果我使用值a检查1,使用值b检查2,然后检查check1将输出到a的值a表格行。我可以如何实现?我怎么得到哪个复选框被选中?

+0

你可能要考虑使用jQuery做这个,而不是 – 2012-04-03 14:10:38

+0

jQuery是一个客户端的语言,它是无用的确定在PHP中检查哪个复选框,这就是问题所在。 jQuery与这个问题完全无关,不管相信与否。 – 2012-04-03 14:11:43

+0

下一次,@Bibu,请花些时间写出一个更好的格式化问题,无论是拼写还是意图 - 如果我们不明白你想要什么,我们将无能为力。 – Christian 2012-04-03 14:21:43

回答

2

的几个注意事项:

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

    $ SQL = 'SELECT idden_mag FROM 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> 
1

在这里你去:

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

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

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

为什么'“{$ _POST ['test']}”'? – 2012-04-03 14:12:26

+0

该值以字符串形式发送并且必须保留为字符串。但是,我猜'$ Checkbox1 = $ _POST ['test'];'也可以。 – 2012-04-03 14:14:06

+0

是的,它会的。 :) – MichaelRushton 2012-04-03 14:14:39

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


<?php 

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

?> 

当你给输入型元素(输入,文本区域,选择按钮)的名称属性(像我一样),浏览器将提交元素的状态/值(如果包含表单已提交)。


在复选框的情况下,你并不需要检查值,但它确实存在。如果复选框未被选中,则不会被设置。


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

最后,有人提到了jQuery。 jQuery是普通的javascript也许有些加糖。但重要的是,理论上你可以用jQuery来改变东西,以便它可以(或不会)与请求一起提交。例如,您可以让jQuery在提交表单之前销毁复选框(在这种情况下,不会发送复选框)。