我的网站上有一个表单字段,用于数据库中的表格。我正在使用复选框来表示真/假值。在我的情况下,如果不选中,我的复选框会发出一个空字符串。
我创建了一个if else语句来确保空字符串是boolean。但是,我的if else语句仅适用于第一个($ ringe)。最后两个($ halskaeder和$ armbaand)似乎不起作用,因为我的数据库没有注册任何输入。
我猜我的if else语句有缺陷或语法错误,我在PHP上无法弄清楚什么是错的。
if ($_REQUEST['ringe'] == ""){
$ringe = '0';
}
else {
$ringe = '1';
}
if ($_REQUEST['halskaeder'] == ""){
$halskaeder = '0';
}
else {
$halskaeder = '1';
}
if ($_REQUEST['armbaand'] == ""){
$armbaand = '0';
}
else {
$armbaand = '1';
}
非常感谢任何帮助!
UPDATE !!!
所以我意识到我的问题是html中未经检查的复选框不会发送和发出信号。所以我不得不改变它,无论什么
答案 0 :(得分:2)
AFAIK如果未选中,则不会发送复选框。你可以这样做:
$default = array(
'ringe' => 0,
'halskaeder' => 0,
'armbaand' => 0,
);
$myFormParams = array_replace($default, $_REQUEST);
var_dump($myFormParams);
答案 1 :(得分:0)
少数建议......如果您发布表单,我可能会添加更多...
1)修剪用户输入的空格(除非你需要)
$input = trim($_REQUEST['user_input']);
2)在这种情况下,你应该使用empty()
,因为这个函数检查变量是否存在,它是否为空,以及它是否为假。你可以一石二鸟。
3)使用三元组。它是你正在做的事情的简写。
$input = trim($_REQUEST['user_input']);
$input = empty($input) ? "0" : "1";
答案 2 :(得分:-1)
我找到了答案。我的问题不是PHP代码,但是未选中时复选框没有发送任何输入。解决方法是简单地放置一个隐藏的输入字段来发送错误信号,无论如何。您为它赋予与真实复选框相同的名称属性,在选中时将覆盖它。
看起来像这样:
var pnl = document.getElementById('Panel1');
pnl.style.left = "";
pnl.style.top = "";
感谢您的帮助!