删除多个标记的项目

时间:2011-04-03 15:52:04

标签: php mysql html

如何从html中显示的列表中删除多个项目。

例如

<ul>
 <li>item 1</li>checkbox
 <li>item 2</li>
</ul>

<a href="delete.php?ids=checkedids">Delete items</a>

2 个答案:

答案 0 :(得分:5)

在PHP中执行此操作的简单方法是为所有复选框指定相同的名称,并使该名称以[] 结尾:

<input type="checkbox" name="item[]" value="1" />
<input type="checkbox" name="item[]" value="2" />
<input type="checkbox" name="item[]" value="3" />

然后您的脚本将所有选中的值作为数组获取:

if(empty($_REQUEST['item'])) {
    // No items checked
}
else {
    foreach($_REQUEST['item'] as $id) {
        // delete the item with the id $id
    }
}

要使这项工作正常,您需要将复选框放入<form>,然后使用提交按钮(不是链接 - 除非您开始使用JavaScript,否则无法使用),如下所示:

<form method="post" target="some/php/script.php">
    <input type="checkbox" name="item[]" value="1" />
    <input type="checkbox" name="item[]" value="2" />
    <input type="checkbox" name="item[]" value="3" />
    <input type="submit" name="delete" value="Delete checked items" />
</form>

对此有一些可能的改进(见Crozin的答案),但你应该首先了解基础知识。

答案 1 :(得分:3)

首先,你应该使用一个表格。您可以使用复选框选择要删除的项目,然后使用以下查询:

DELETE FROM tbl_name WHERE id_col_name IN (1, 2, 3, 4, 5, 6, 7, 8);

HTML表单本身可能如下所示:

<form ...>
    ...
    <li>
        <label>Delete item #123 <input type="checkbox" name="delete[123]" />
    </li>
    ...
</form>

然后在$_POST['delete']数组下可以轻松获得ID列表。