确定在PHP中是否选择了每行表中的CheckBox

时间:2011-08-24 15:52:54

标签: php mysql checkbox

我目前正在开发一个PHP项目。我正在读取MySQL数据库中的行并将它们填充到HTML表中。

我希望能够在用户可以选择的每一行上提供一个复选框。当他们按下提交按钮时,它将检查点击了哪些复选框并将其从数据库中删除。

如何确定按下提交时单击的复选框。

感谢您提供的任何帮助。

3 个答案:

答案 0 :(得分:1)

<input type="checkbox" name="fieldname" value="somevalue" />

将以

的身份提交给服务器
fieldname=somevalue

如果选中该复选框。如果没有选中,则根本不提交任何内容。

通过为复选框指定相关的字段名,并使用数据库记录标识符填充它们的值,您将能够确切地看到检查了哪些复选框,并对相应的记录执行删除操作。

答案 1 :(得分:1)

我建议将ID加载到数组中。它将使您的PHP逻辑在后端更容易和更整洁。这是一个非常基本的例子。

<强> HTML

<form action="..." method="post">
    <table>
        <tr><td><input type="checkbox" name="deleteId[]" value="1" /></td></tr>
        <tr><td><input type="checkbox" name="deleteId[]" value="2" /></td></tr>
        <tr><td><input type="checkbox" name="deleteId[]" value="3" /></td></tr>
    </table>
    <input type="submit" />
</form>

<强> PHP

<?php
// If IDs were selected then delete from the database
if( isset($_POST['deleteId']) && count($_POST['deleteId']) >  0 )
{
    $sql = 'DELETE FROM tablename WHERE id IN ('.implode(',', $_POST['deleteId']).')';
    mysql_query($sql);
}
else
{
    // no ids were selected
    // ...
}
?>

答案 2 :(得分:0)

您可以为每个可以存储值0或1的复选框添加隐藏字段。 选择复选框时,应使用javascript更改此字段的值。 zend使用类似的方法(我的意思是隐藏的字段)。这种方法可以帮助您解决未经检查的复选框的问题。