Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP单选按钮检查是否为null_Php_Forms_Radio Button - Fatal编程技术网

PHP单选按钮检查是否为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

因此,我们得到这个学校任务,我们需要检查其中一个字段是否未填充,并显示一个错误。我们这样做了,但出于某种奇怪的原因,当单选按钮未选中时,它不会显示错误(textfield null检查工作正常)

我和一个朋友试过很多种可能性,但似乎都不起作用。这项任务我们已经做了两个小时了。现在,我们已经尝试将
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']) { ...