我有以下一些代码来检查是否正确填充了包含多个字段的表单。问题是,它没有正确地连接字符串。
以下是代码的一些代码:
if(strlen($name) < 2 || strlen($email) < 6 || strlen($subject) < 5 || strlen($message) < 15){
$alert = "There are some problems: \n";
if(strlen($name) < 2){
$alert . "Name is too short \n";
}
if(strlen($email) < 6){
$alert . "email is too short \n";
}
if(strlen($subject) < 5){
$alert . "The subject is too short \n";
}
if(strlen($message) < 15){
$alert . "Your message is too short \n";
}
$alert . "Please fill in te fields correctly";
echo $alert;
?>
<script>
alert("<?= $alert ?>");
</script>
<?php
}
else { ... } ?>
如果我在每个if语句中放置一个echo,它会显示它会触发,但最后所有得到警报并被回显打印的是“有一些问题:”
为什么警报字符串没有正确连接?我尝试删除每个句子中的\ n,但这也不起作用。
答案 0 :(得分:2)
您应该$alert .= "something"
,而不仅仅是$alert . "something"
。
答案 1 :(得分:0)
你不能连接这样的变量,使用.=
.
将连接左右参数。 .=
将右侧的论点附加到左侧的论证中。
if(strlen($name) < 2 || strlen($email) < 6 || strlen($subject) < 5 || strlen($message) < 15){
$alert = "There are some problems: \n";
if(strlen($name) < 2){
$alert .= "Name is too short \n";
}
if(strlen($email) < 6){
$alert .= "email is too short \n";
}
if(strlen($subject) < 5){
$alert .= "The subject is too short \n";
}
if(strlen($message) < 15){
$alert .= "Your message is too short \n";
}
$alert .= "Please fill in te fields correctly";
echo $alert;
?>
<script>
alert("<?= $alert ?>");
</script>
<?php
}
else { ... } ?>