PHP单选按钮检查是否为null
因此,我们得到这个学校任务,我们需要检查其中一个字段是否未填充,并显示一个错误。我们这样做了,但出于某种奇怪的原因,当单选按钮未选中时,它不会显示错误(textfield null检查工作正常) 我和一个朋友试过很多种可能性,但似乎都不起作用。这项任务我们已经做了两个小时了。现在,我们已经尝试将PHP单选按钮检查是否为null,php,forms,radio-button,Php,Forms,Radio Button,因此,我们得到这个学校任务,我们需要检查其中一个字段是否未填充,并显示一个错误。我们这样做了,但出于某种奇怪的原因,当单选按钮未选中时,它不会显示错误(textfield null检查工作正常) 我和一个朋友试过很多种可能性,但似乎都不起作用。这项任务我们已经做了两个小时了。现在,我们已经尝试将if分开,但这似乎不太管用 这些是重要的部分: <p> <input type="hidden" name="taal" value="false"> Choose a l
if
分开,但这似乎不太管用
这些是重要的部分:
<p>
<input type="hidden" name="taal" value="false">
Choose a language
<input type="radio" name="taal" value="N"> Dutch
<input type="radio" name="taal" value="E"> English
<input type="radio" name="taal" value="S"> Spanish
可以忽略隐藏的标记:
Choose a language
<input type="radio" name="taal" value="N"> Dutch
<input type="radio" name="taal" value="E"> English
<input type="radio" name="taal" value="S"> Spanish
此外,在大多数情况下,建议不要使用。错误消息(警告、通知等)用于警告代码中的问题。修复问题,而不是隐藏它,否则它可能会回来咬你。这是因为它永远不会是空的。您给了它一个默认值,
“false”
。核对一下:
if ($_POST['taal'] == "false") {
//No language given
}
隐藏元素中的值'false'是一个字符串,因此您应该比较
$\u POST['taal']=='false'
,它才能工作
最好将此false元素设置为空字符串,然后将其与'
进行比较。另外,我不建议使用@
来抑制警告,因此请尝试以下方法:
if (!isset($_POST['taal']) || !$_POST['taal']) { ...
不建议抑制错误。改为使用
if(!isset($\u POST['taal'])
。if(empty($\u POST['taal']){…}
并对隐藏输入设置value=”“
。PS:var\u dump($\u POST)代码>-这将在不浪费时间的情况下回答您的所有问题在这种情况下很明显,但我建议避免使用“它不起作用”这一短语-最好是解释您的期望以及您实际得到了什么:)
$\u POST['taal']==”
作为编写看起来更好一点$_POST['taal']
这完全解决了我的问题。隐藏的标签毕竟是问题所在。所以我想我的课本得重写了!(我会在8分钟内选择你最好的答案(我不能早点做。)@Dallox我看过很多本不该写的教科书。是的,我们的书可能就是其中之一。犯了一大堆错误。我们最好从互联网上学习。@Dallox在大多数情况下,互联网甚至更糟。有很多过时的、糟糕的PHP教程教你一些永远不应该使用的实践——你应该非常小心。不过,在StackOverflow上,情况要好得多。我们建议您仔细阅读PHP手册,并养成习惯。
if ($_POST['taal'] == "false") {
//No language given
}
if (!isset($_POST['taal'])) {
if (!isset($_POST['taal']) || !$_POST['taal']) { ...