我有这个复选框:
>
我从我的数据库中获取数据.因此,如果在我的数据库中启用了维护,则将选中该复选框.这是这样的:
if($sdata['maintenance']==1): $maintenance="checked='checked'"; else: $maintenance=""; endif;
问题是,每当我想要禁用维护时,它都不会更新数据库.它仍将设置为"1".
这是我发布的方式:
$maintenance = inputFilter($_POST['maintenance']);
我的数据库表有两列:
setting_name
和setting_value
.在这种情况下,它将是:
maintenance
和 1
我这样更新:
foreach($_POST as $key => $value) { $value = inputFilter($value); mysql_query("UPDATE settings SET setting_value='$value' where setting_name='$key' limit 1") or die(mysql_error()); }
每当我取消选中该复选框并保存设置时,都不会发生任何事情.我甚至试图$maintenance
从帖子中获取echp ,当它未经检查时,值为0.
任何人都知道是什么原因造成的?
未检查的复选框不会在POST请求中发送,因此其密钥不在$ _POST中
您应该检查复选框名称是否存在.
if(!isset($_POST['maintenance'])) { // Checkbox is unchecked }