我在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'];
}
}
?>
我试过寻找答案,但我无法理解它们。有一种简单的方法可以做到这一点吗?
答案 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);
}
}
?>