【发布时间】:2012-12-18 11:16:11
【问题描述】:
通过这行代码,我将每个选中的复选框的值添加到数据库中:
// ADD ALL TYPES TO PRODUCTIONLOG_TYPE TABLE
$x=1;
$values=array();
foreach($_POST['id'] as $x)
{
$AddToListQuery = "
INSERT INTO
productionlog_type
(productionlogid, typeid)
VALUES
('" . mysql_real_escape_string($_GET['productionlog']) . "', '". mysql_real_escape_string($x) ."')
";
mysql_query($AddToListQuery)or die("query fout " . mysql_error() );
}
我这样做是为了回显已选中的复选框是否已在数据库中。
现在的问题是,当用户取消选中复选框并发送表单时,它没有传递任何值,对吧?所以我不能从数据库中删除它...意味着复选框仍然处于选中状态。
对此我能做些什么?
【问题讨论】:
-
您应该知道您在表单中输入了哪些复选框。每个未选中的复选框都不在返回的数据中。区分您在表单中输入的复选框和返回并取消设置数据库中差异的复选框。
-
请使用
PDO而不是标准的mysql_方法 -
真的。所以我尝试了 foreach (!isset($_POST['id'] as $x)) 但这会给我一个错误......这些数组不太好
-
foreach (!isset($_POST['id'] as $x)将不起作用,因为!isset返回一个布尔值。而且你不能 foreach 一个布尔值