1

在过去的几个小时里,我一直在为学生制作输入表格。我已经完成了几乎所有工作,0 次打嗝,但我遇到了一个小问题,我想不出解决办法。我有一个下拉菜单,对此的验证是:

 }
        if(empty($why) === true) {
            $errors[] = 'Please make sure to select the proper reasoning for your vistit today!';
    }

默认变量设置为空或只是 value=""(空)...

现在我需要验证的下一件事是,如果学生选择“其他”选项,我需要他们将至少 10 个字符和最多 30 个字符插入专门为找不到一般原因的学生制作的评论框中他们访问了财政援助办公室。这就是我所拥有的(顺便说一句它不起作用):

if(isset($why) === Other) {
        $errors[] = 'Please add a comment explaining why you are visiting the office.';
}

所以总而言之,我需要帮助写一个验证,如果学生选择其他,那么他或她必须在“评论框”中写一个关于他或她为什么访问办公室的简短摘要。

任何帮助都会很可爱。谢谢你。

4

2 回答 2

1

可以说“其他”字段的文本区域被称为$other

if(empty($why)){
  $errors[] = 'Please select a reason';
}elseif($why == 'Other' && empty($other)){
  $errors[] = 'You selected Other. Please enter a reason why';
}

您的代码可能需要比上面更详细,因为您希望设置最小和最大字符数,但您明白了吗?

顺便说一句,我认为您没有理由要使用===运算符而不是==运算符。他们做完全相同的事情,但===检查它是否是同一类型,不确定这对您的脚本有什么好处。

于 2012-12-26T00:10:40.290 回答
0

For if(isset($why) === Other), Other不应该用引号引起来,因为$why会将下拉菜单选择的值作为文本返回?

if(isset($why) === 'Other')假设“其他”是下拉菜单的“其他”选择选项的名称,那么应该可以工作。

编辑:再次查看您的代码,您正在将一个isset()值与另一个 var(其他)进行比较。您希望if(isset($why) && $why === 'Other')这样可以检查$why是否已设置,并且它也等于文本"Other"。=== 运算符还会检查 $why 和 Other 是否属于同一类型,因此您应该检查其余代码以确保$whyOther属于同一类型。

于 2012-12-26T00:04:22.107 回答