-1

我有以下代码来检查是否正确填写了具有多个字段的表单。问题是,它没有正确连接字符串。

下面是代码的一些代码:

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 语句中放置一个回显,它表明它触发了,但最后所有得到的警报和回显打印的是“有一些问题:”
为什么警报字符串没有正确连接?我尝试删除每个句子中的 \n ,但这也不起作用。

4

2 回答 2

2

你应该做$alert .= "something"的,不只是$alert . "something"

于 2012-06-12T11:51:52.463 回答
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 { ... } ?>
于 2012-06-12T11:51:39.047 回答