我有一个html表,其中包含特定数据库表中的所有行值。
我创建了一个html表列来消除数据库中的特定行,在此列中存在一个复选框,用于检查并从数据库中删除多个表行。
但是我遇到了一些问题,我只能删除最后一行,例如:让我们假设您检查第二行,然后单击“提交”按钮,没有任何反应。
但是如果检查最后一个插入的行,然后单击“提交”,它将从数据库中删除该行。
我只能删除最后一行,我无法通过选中特定数量的复选框来删除多行。
我这样做了:
我正在使用MVC结构:
查看:
<form method='POST'>
<?php
echo "<td><input style='width: 50px;' class='delete' value='delete' type='submit' name='del[]' /></td>";
foreach($editjoarray as $key){
echo "
<table>
<tr>
<td> ".$key['id']."</td>
<td><input type='checkbox' name='delete[]' value=".$key['id']." /></td>
</tr>
</table>
</form>";
}
型号:
function fname(){
if(isset($_POST['del']) && !empty($_POST['delete'])) {
{
$checkbox = $_POST['delete'];
$countCheck = count($_POST['delete']);
for($i=0;$i<$countCheck;$i++) {
$del_id = $checkbox[$i];
echo $del_id;
$sql = "DELETE FROM mytable WHERE id=$del_id";
$exe = mysql_query($sql) or die(mysql_error());
}
}
}
printFunction();
}
答案 0 :(得分:1)
您正在关闭循环内的表单标记,因此始终只有一个删除复选框(作为post值)。您需要将表单</form>
的结束标记移到循环外部,以便所有复选框都位于相同的表单中。
<form method='POST'>
<?php foreach($editjoarray as $key){
/*
delete checkboxes
input fields
*/
} ?>
</form>