如何在php中获取多个复选框的值

时间:2012-09-19 06:42:18

标签: php checkbox

我使用以下代码为所选复选框选择多个值以将其从数据库表中删除但是当我是print_r时,它只显示其未显示id值的键。

我已使用此代码获取数组中的值: -

<?php
echo "Hiiiiiiiiii";
include("conn.php");
$sql="select * from test ";

$res=mysql_query($sql) or die(mysql_error());
?>

<form name="form1" method="POST" action="">
    <table width="578" border="1" align="center" id="menu">
    <tr>
    <th></th>
    <th>id</th>
    <th>Name</th>
    <th>email</th>
    <th>phno</th>
 </tr>

<?php
 while($row=mysql_fetch_array($res))
 {
?>

 <tr>

    <td><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td>
    <td><?php echo $row['id'];?></td>

    <td><?php echo $row['name'];?></td>
    <td><?php echo $row['emailid'];?></td>

    <td><?php echo $row['phno'];?></td>
    <?php
    echo"<td><a href='update.php?id=".$row['id']."'>Update</a></td>";
    ?>
 <?php
  }
 ?>  
 <tr><td><input type="submit" name="delete" value="Delete" id="delete"></td></tr></tr></table>

 <?php
// Check if delete button active, start this
$count = mysql_num_rows($res);
echo "$count";

if(isset($_POST['delete']))
{
    if(count($_POST['checkbox']) !=0)
    {
        $array = array("checkbox" => $_POST['checkbox']);
        print_r($array);
        $ids = implode(',', $array);
        echo "$ids";
        $result = mysql_query("DELETE FROM test WHERE id IN ($ids)") or die(mysql_error());
    }
}
// if successful redirect to delete_multiple.php 
if($result)
    {
     echo "<meta http-equiv=\"refresh\" content=\"0;URL=teach_delinquent.php\">";
     echo "SUCCESS";
    }

 ?>

2 个答案:

答案 0 :(得分:0)

$_POST['checkbox']数组只包含复选框:

$ids = array();
foreach($_POST['checkbox'] as $val){
    $ids[] = (int) $val;
}
$ids = implode(',', $ids);

出于安全考虑,我已完成foreach以制作所有ID INT

答案 1 :(得分:0)

快速解决您的问题如下

替换下面的行

$array = array("checkbox" => $_POST['checkbox']);

$array = $_POST['checkbox'];

$array = array_map('intval',$_POST['checkbox']); // if all values are integer ---for security

因为$ _POST ['checkbox']已经是一个数组

希望这能解决你的问题