1

我已经使用以下代码为选定的复选框选择多个值以将其从数据库表中删除,但是当我是 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";
    }

 ?>
4

3 回答 3

0

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

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

出于安全目的,我已经完成了foreach所有 id 的制作。INT

于 2012-09-19T06:44:47.150 回答
0

您的问题的快速修复如下

替换下面的行

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

$array = $_POST['checkbox'];

或者

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

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

希望这能解决您的问题

于 2016-03-28T04:52:10.043 回答
-1

首先,您需要计算有多少个复选框

$counter = sizeof($_POST['checkbox']);

运行一个循环来访问所有这些值

for($i=0;$i<=$counter;$i++){
    $checkbox_val = $_POST['checkbox'][$i];
}

这就是你所需要的

于 2018-05-12T16:39:12.497 回答