我正在使用带有多个复选框的表单,以便用户选择要删除的行。生成表单的代码是:
if ($busqueda!=""){
$busca = mysqli_query($con, " SELECT id_user FROM usuarios WHERE
id_user LIKE '%$busqueda%'");
echo "<form action='borrar.php' method='post' enctype='multipart/form-data'>";
while ($array= mysqli_fetch_array($busca)){
$user=makestring($array);
echo"Usuario: <input type='checkbox' name='borrar_usuario' value='$user' />$user<br/>";
}
echo " <input type='submit' name='boton' value='eliminar' />";
echo "</form>";
borrar.php中删除行的代码是:
if(isset($_REQUEST["borrar_usuario"])) {
foreach ($_POST as $valor){
$del_user = $valor;
$q_borrar = "delete from usuarios where id_user in ('$del_user')";
mysqli_query($con, $q_borrar)or die(mysqli_error());
}
//echo "usuario borrado";
header('refresh: 3; url= exito.php');
}
问题是只删除了所选的第一行,我不知道如何删除表单中选择的所有选项。有什么帮助吗?
答案 0 :(得分:1)
首先更改复选框的名称以包含[]
。然后,当您提交表单时,php会将其转换为数组。
<input type='checkbox' name='borrar_usuario[]' value='$user' />
然后在处理表单提交的php代码中删除循环并拥有此
if(isset($_REQUEST["borrar_usuario"])) {
$q_borrar = "delete from usuarios where id_user in ('" . implode("','", $_POST['borrar_usuario']) . "')";
mysqli_query($con, $q_borrar)or die(mysqli_error());
//echo "usuario borrado";
header('refresh: 3; url= exito.php');
}
答案 1 :(得分:0)
我认为这会奏效:
if(isset($_POST['borrar_usuario']))
{
$q_borrar = "delete from usuarios where id_user in ($_POST['borrar_usuario'])";
mysqli_query($con, $q_borrar) or die(mysqli_error());
}