我使用复选框让人们选择他们想要从数据库中删除的内容,可能会发生他们决定一次删除更多内容,如果他们这样做我的链接如下:
?delete=24&delete=11
我的HTML:
<form>
<input type='checkbox' name='delete' value=" . $row['server_id'] . ">
</form>
我需要做的是从SQL中删除1行
DELETE FROM TABLE WHERE id=$server_id & name= $name, $con
如果它只是1个变量,我会轻松获得它,但现在我不知道该怎么做,有人可以帮助我吗?
答案 0 :(得分:5)
与网址
一起使用[]
?delete[]=24&delete[]=11
使用表单输入,如:
name='delete[]'
$ids = $_GET['delete'];
foreach ($ids as $id)
{
// DELETE FROM TABLE
}
if (isset($_GET['delete']))
{
if (!is_array($_GET['delete']))
$ids = array((int)($_GET['delete']));
else
$ids = array_map('intval', $_GET['delete']);
$ids = implode(",", $ids);
$sql = "DELETE FROM table WHERE id IN ({$ids})";
}
答案 1 :(得分:1)
在名称后面使用[]:
<form>
<input type='checkbox' name='delete[]' value=" . $row['server_id'] . ">
...
</form>
那将发送?delete [] = 24&amp; delete [] = 11
PHP然后将其转换为数组。
$delete_ids = isset($_REQUEST['delete']) ? (array) $_REQUEST['delete'] : array();
答案 2 :(得分:0)
如果你想要它更花哨但更复杂,你也可以这样做:
?delete=1,2,3,4
代码为:
$arr = explode(',', $_GET['delete']);
print_r($arr);
这对于论坛输入来说并不是很好(因为它从未见过),但如果用户需要查看或更改网址,则会更容易阅读。
答案 3 :(得分:0)
作为问题的解决方案,您可以将表单方法指定为POST
e.g
<form method="POST">
<input type='checkbox' name='delete[]' value=" . $row['server_id'] . ">
</form>
在服务器端,您可以使用$ _POST superglobal变量访问表单字段的值。