提交

时间:2015-08-14 13:37:23

标签: php mysql checkbox

所以我正在制作这个网站,我在我的数据库中获得了一些数据。使用php将数据自动读入表中。每个表行也会自动获得一个复选框。现在我想检查复选框,然后按删除键,它会从数据库中删除已检查的数据。有什么想法吗?

这是我的代码:

<table width="600" border="1" cellpadding="1" cellspacing="1">
<tr>
<th>Username</th>
<th>Paswoord</th>
<th>Delete</th>
</tr>
<?php
while($user = mysql_fetch_assoc($records)){
  echo "<tr>";
  echo "<td>".$user['UserName']."</td>";
  echo "<td>".$user['Pass']."</td>";
  echo "<td> <input type='checkbox' name='checkbox' value='checked'</td>";
  echo "</tr>";
}
?>
</table>
<form method= "POST" action="deleteuser.php">
<input type="submit" name="delete" value="DELETE USERS">
</form>

这是我删除user.php

中的代码
$checked = $_POST['checkbox'];

if($_POST['checkbox'] == "checked"){
echo "SUCCEEEEEEES";
}

3 个答案:

答案 0 :(得分:1)

这就是我经常做的事情: -

对while循环进行这些更改。

<?php
$c=0;
while($user = mysql_fetch_assoc($records)){
  $c++
  echo "<tr>";
  echo "<td>".$user['UserName']."</td>";
  echo "<td>".$user['Pass']."</td>";
  echo "<td> <input type='checkbox' name='checkbox-$c' value='checked'</td>";
  echo "</tr>";

}
echo "<input type='hidden' name='total' value='$c'>";
?>

deleteuser.php(通过for循环访问此处的所有复选框)

<?php
for($i=1;$i<=$_POST['total'];$i++)
{
    if($_POST['checkbox-$i'] == "checked")
    {
        //commands for delete
    }
}
?>

答案 1 :(得分:1)

有几件事需要注意;

  • 编写<form>标记的语法和正确方法。
  • 使用<input>
  • 中的<form>字段
  • 传递一个checkbox[]而不是一个checkbox的数组。
  

您的代码

<form method= "POST" action="deleteuser.php">
<table width="600" border="1" cellpadding="1" cellspacing="1">
<tr>
<th>Username</th>
<th>Paswoord</th>
<th>Delete</th>
</tr>
<?php
while($user = mysql_fetch_assoc($records)){
  echo "<tr>";
  echo "<td>".$user['UserName']."</td>";
  echo "<td>".$user['Pass']."</td>";
  echo "<td> <input type='checkbox' name='checkbox[]' value='checked'</td>";
  echo "</tr>";
}
?>
</table>
<input type="submit" name="delete" value="DELETE USERS">
</form>
  

PHP

而不是使用它;
    

if($_POST['checkbox'] == "checked"){
echo "SUCCEEEEEEES";
}
?>
  

使用此功能;

<?php
    foreach($_POST['checkbox'] as $val)
    {
       echo $val . " this should be deleted";
    }
?>

答案 2 :(得分:0)

将复选框的名称从checkbox重命名为checkbox[]。现在你得到一个数组而不是一个字符串。 然后将value-attribute设置为表中您的行ID(主键或您需要删除它们)

echo "<td> <input type='checkbox' name='checkbox[]' value='".$user["UserID"]."'</td>";

现在你可以用PHP迭代它们了

foreach ($_POST["checkbox"] as $value){
    // ..Delete FROM ... where userID = $value
}