如何从html中显示的列表中删除多个项目。
例如
<ul>
<li>item 1</li>checkbox
<li>item 2</li>
</ul>
<a href="delete.php?ids=checkedids">Delete items</a>
答案 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列表。