我试图使用复选框从数据库中删除多行。
我在foreach循环中有一个html表来查找表值。
我想在这个表中放置一个delete按钮来删除某一行中的所有值。
但我不知道该如何做,我使用了以下代码:
if (isset($_POST['delete']) && (!empty($_POST['checkbox']))){
$del_id = $_POST['checkbox'];
foreach($del_id as $value){
$sql = "DELETE FROM my_table WHERE id='".$value."'";
$result = mysql_query($sql);
}
}我在foreach循环中有这段代码
<td><input style='width: 50px;' class='delete' value='delete' name='checkbox' type='checkbox'/></td>
<input type='hidden' name='id' value=".$key['job_id']." />发布于 2014-04-13 15:17:38
您需要将此代码更改为
<td><input style='width: 50px;' class='delete' value='delete' name='checkbox' type='checkbox'/></td>到某种程度上
<td><input style='width: 50px;' class='delete' value='delete' name='checkbox[]' type='checkbox'/></td>请参阅name='checkbox'和name='checkbox[]'之间的区别,然后在php代码中。写像这样的东西
print_r($_POST);你会得到所有的价值..。试试这个。
发布于 2014-04-13 15:15:59
应该将复选框视为数组:
<input style='width: 50px;' class='delete' value='delete' name='checkbox[]' type='checkbox'/>此外,与其为收到的每个MySQL值创建一个新的checkbox语句,还可以使用IN()命令:
if (isset($_POST['delete']) && (!empty($_POST['checkbox']))){
$del_ids = implode(',', $_POST['checkbox']);
$sql = "DELETE FROM my_table WHERE id IN('".$del_ids."')";
}然而,我强烈建议使用预先准备好的声明。您似乎也没有净化$_POST变量中的值--非常危险。
https://stackoverflow.com/questions/23044352
复制相似问题