如何编写带数组的选择案例来检查表单验证?
这是我的代码:
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];
$array = array($name,$email,$message);
switch($array[]) {
case empty($array[0]):
error = "name";
break;
case empty($array[1]):
error = "email";
break;
case empty($array[2]):
error = "message";
}
然后,我想编写代码来得到这个结果:
如果名称为空:
“请填写您的姓名”
如果电子邮件是空的:
“请填写您的电子邮件”
如果姓名和电子邮件为空:
“请填写您的姓名和电子邮件”
如果姓名,电子邮件和消息为空:
“请填写您的姓名,电子邮件和留言”
答案 0 :(得分:3)
您想要连接消息,因此最好使用if语句:
$error = "Please fill in: ";
if (empty($array[0]))
$error .= "name ";
if (empty($array[1]))
$error .= "email ";
if (empty($array[2]))
$error .= "message ";
.=
会将字符串连接到现有字符串。
答案 1 :(得分:1)
尝试使用这种语法正确的解决方案:
$empty = array();
$fields = array('name', 'email', 'message');
foreach ($fields as $key => $value){
if(empty($_POST[$value])) $empty[] = $value;
}
$error_msg = '';
$count = count($empty);
$cnct = ', ';
if ($count > 0){
$error_msg = 'Please fill in your ';
}
foreach ($empty as $key => $value){
if ($key == $count - 2){
$cnct = ' and ';
}elseif($key == $count - 1){
$cnct = '.';
}
$error_msg .= $value.$cnct;
}
答案 2 :(得分:1)
您可以尝试:
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];
$error="Please fill in your ";
$array = array('name'=>$name,'email'=>$email,'message'=>$message);
foreach($array as $key=>$value){
if(empty($value)){
$error.=','.$key;
}
}
答案 3 :(得分:0)
你应该写一下:
$error = "Please fill in: ";
if (empty($array[0]))
$error.= "name ";
if (empty($array[1]))
$error.= "email ";
if (empty($array[2]))
$error.= "message";
没有为您想要的事情做出开关。
答案 4 :(得分:0)
您不能在case
块的switch
语句中使用变量表达式。
切换案例必须在包含php
的多种语言中具有常量表达式。因此,像变量或函数调用之类的东西不起作用。
最好使用conditionals
。
您的代码也缺少变量$
的{{1}}符号。
请改为:
error