复选框在一个while循环php

时间:2016-09-29 11:43:48

标签: php html

我在while循环中有一个复选框,如下所示:

 <form method="POST">
    <?php $sql= mysql_query("SELECT * FROM names WHERE `id` ='$id' ");

     while ($get = mysql_fetch_array($sql)){ ?>
    <input type="checkbox" name="id_names" value="<? echo $get ['id'];?>"><?php echo $get ['name']; ?>
    <?php } ?>
   <input id="submitbtn"  type="submit" value="Submit" /><br><br>
</form>

问题在于此部分我无法获取特定的复选框属性,即使用户选择了两个check boxes,我也无法回显id

<?php
      if(isset($_POST['id_names']))
        {
         $id_names= $_POST['id_names'];
         $email = mysql_query("SELECT `email` FROM users WHERE `id` = '$id_names'  ");
  while ($getemail = mysql_fetch_array($email))
      {
        echo $getemail['email'];
      }
         }
    ?>

我试过寻找答案,但我无法理解它们。有一种简单的方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:0)

表单名称name="id_names"必须是一个数组,以允许参数携带多个值:name="id_names[]"

$_POST['id_names']现在将是所有发布值的数组。

答案 1 :(得分:0)

这里您的输入字段是多个,因此您必须使用name属性作为数组:

  

仅供参考:您使用的是不推荐使用的mysql,您应该使用mysqli / pdo。

<form method="POST" action="test.php">
    <?php $sql= mysql_query("SELECT * FROM names WHERE `id` =$id ");

    while ($get = mysql_fetch_array($sql)){ ?>
        <input type="checkbox" name="id_names[]" value="<?php echo $get['id'];?>"><?php echo $get['name']; ?>
        <input type="checkbox" name="id_names[]" value="<?php echo $get['id'];?>"><?php echo $get['name']; ?>
    <?php } ?>
    <input id="submitbtn"  type="submit" value="Submit" /><br><br>
</form>

表单操作:test.php(如果您的查询没问题。)

<?php
    if(isset($_POST['id_names'])){
        foreach ($_POST['id_names'] as $id) {
            $email = mysql_query("SELECT `email` FROM users WHERE `id` = $id");
            $getemail = mysql_fetch_array($email); //Here always data will single so no need while loop
            print_r($getemail); 
        }
    }
?>