我只想让 php 确定是否选中复选框,但我遇到了获得正确返回值的问题。请帮助。
我的html代码
<label>
<input name="Language" type="checkbox" id="aa" checked="checked" />
One</label>
<label>
<input name="Language" type="checkbox" id="bb" />Two</label>
<label>
<input type="checkbox" name="Language" id="cc" />Three</label>
我通过 $_GET 方法将值传递给 php
我的PHP代码:
$aa=$_GET["aa"];
$bb=$_GET["bb"];
$cc=$_GET["cc"];
echo $aa."<br>";
echo $bb."<br>";
echo $cc."<br>";
输出是
真的
错误的
错误的
接下来我只想确定是否选中了每个框,如果是,则执行某些操作。
if ($aa == true) { $abc="checked";}
else { $abc="not checked"; }
if ($bb == true) { $cde="checked";}
else { $cde="not checked"; }
if ($fgh == true) { $fgh="checked";}
else { $fgh="not checked"; }
但 if 语句始终返回 true,即使该框未被选中。我尝试了“===”和“!=”的变体,但它似乎不起作用。
TIA
if (isset($_GET['checkbox_name'])) { ... }
表单控件(文件输入除外,以及图像输入的一些特殊规则)始终提交strings。查询字符串或表单编码的 POST 正文中没有布尔值的概念。
id 是无关紧要的——只有名称和值很重要(至少就 PHP 而言)。
由于您没有给他们值,IIRC,他们会默认为on
因此,如果您正在进行比较,您应该寻找这一点。寻找与isset
不过更简单。但这有点离题,因为您的示例为它们提供了相同的名称和值,因此您无法区分它们。
此外,由于 PHP 表单数据解析器的奇怪之处,您必须以[]
如果您想要多个具有相同名称的元素。
您可能想做这样的事情:
<label>
<input name="Language[]" type="checkbox" id="aa" checked="checked" value="One" />
One</label>
<label>
<input name="Language[]" type="checkbox" id="bb" value="Two" />Two</label>
<label>
<input type="checkbox" name="Language[]" id="cc" value="Three" />Three</label>
重要的:注意值的添加和名称的更改。
然后在PHP中$_GET['Language']
将是选中复选框的值的数组,您可以对其进行循环。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)