0

我正在使用一个带有多个复选框的表单来让用户选择他想要删除的行。生成表单的代码是这样的:

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');
}

问题是只删除选择的第一行,我不知道如何删除表单中选择的所有选项。请问有什么帮助吗?

4

2 回答 2

1

首先将复选框的名称更改为 include []。然后,当您提交表单时,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');
}
于 2013-07-10T12:12:40.197 回答
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());
}
于 2013-07-10T12:13:40.320 回答