Php 有没有比echo更好的方法?

Php 有没有比echo更好的方法?,php,javascript,ajax,forms,validation,Php,Javascript,Ajax,Forms,Validation,我正在编写一本PHP来宾手册,它有一些表单验证(比如出现错误时突出显示字段),我只知道如何使用JavaScript 我有一个简单的表单,如下所示: <form action="$_SERVER['SELF']" enctype="multipart/form-data" method="post"> <label for="guest_name">Guest Name:</label> <input id="post-name" clas

我正在编写一本PHP来宾手册,它有一些表单验证(比如出现错误时突出显示字段),我只知道如何使用JavaScript

我有一个简单的表单,如下所示:

<form action="$_SERVER['SELF']" enctype="multipart/form-data" method="post">
    <label for="guest_name">Guest Name:</label>
    <input id="post-name" class="noerror" type="text" name="guest_name">
    <input type="submit" name="submit" value="Let 'er rip" />
</form>

客人姓名:
我正在使用以下函数验证:

//Name Validation
if(strlen($_POST["guest_name"]) != 0){
    global $Name;
    $Name = $_POST["guest_name"];
} else {
echo '<script type="text/javascript">
        $(document).ready(function(){
            $("#post-name").removeClass("noerror").addClass("error");
        });
     </script>';
}
//名称验证
如果(strlen($_POST[“来宾姓名])!=0){
全球$名称;
$Name=$\u POST[“来宾姓名”];
}否则{
回声'
$(文档).ready(函数(){
$(“#post name”).removeClass(“noerror”).addClass(“error”);
});
';
}

这是可行的,但我忍不住觉得这是一种非常低效的方法,但我对PHP的知识还不太清楚如何优化它

不要发送那么大的脚本。发送带有简单错误代码的自定义标头。您的响应处理程序可以侦听标题(与响应文本不同),并相应地执行操作。

不要发送那么大的脚本。发送带有简单错误代码的自定义标头。您的响应处理程序可以侦听标题(与响应文本不同)并相应地进行操作。

这也是可能的

<?php
    if(strlen($_POST["guest_name"]) != 0) :
        $Name = $_POST["guest_name"];
    else :
?>
    <script type="text/javascript">
        $(document).ready(function(){
            $("#post-name").removeClass("noerror").addClass("error");
        });
    </script>';
<?php endif; ?>

$(文档).ready(函数(){
$(“#post name”).removeClass(“noerror”).addClass(“error”);
});
';
这也是可能的

<?php
    if(strlen($_POST["guest_name"]) != 0) :
        $Name = $_POST["guest_name"];
    else :
?>
    <script type="text/javascript">
        $(document).ready(function(){
            $("#post-name").removeClass("noerror").addClass("error");
        });
    </script>';
<?php endif; ?>

$(文档).ready(函数(){
$(“#post name”).removeClass(“noerror”).addClass(“error”);
});
';
不要依赖js 无需js,您可以通过多种方式完成这类工作,例如:

<form action="" enctype="multipart/form-data" method="post">
    <label for="guest_name">Guest Name:</label>
    <?php
    $class = 'noerror';
    if(empty($_POST["guest_name"])){
        $class = '';
    }
    ?>
    <input id="post-name" class="<?php echo $class ?>" type="text" name="guest_name">
    <input type="submit" name="submit" value="Let 'er rip" />
</form>

客人姓名:
不要依赖js
无需js,您可以通过多种方式完成这类工作,例如:

<form action="" enctype="multipart/form-data" method="post">
    <label for="guest_name">Guest Name:</label>
    <?php
    $class = 'noerror';
    if(empty($_POST["guest_name"])){
        $class = '';
    }
    ?>
    <input id="post-name" class="<?php echo $class ?>" type="text" name="guest_name">
    <input type="submit" name="submit" value="Let 'er rip" />
</form>

客人姓名:

这应该是
action=“
而不是
action=“$\u SERVER['SELF']”
或者您也可以使用
action=“
。试试看,看看它是否有什么不同。你不需要在
if
语句中使用
global
(除非它在函数中,并且你没有将它作为参数传递),如果你只做这样简单的验证,你可以在JS中完成所有的操作。这应该是
action=“
not
action=“$\u SERVER['SELF]”
或者您也可以使用
action=”“
。试一试,看看它是否有区别。如果您只是在做这样简单的验证,那么您不需要在
if
语句中使用
global
(除非它在函数中,并且您没有将其作为参数传递),您可以在JS中完成所有操作。对于多个输入,我可以在每个字段上使用相同的
$class
变量,还是必须编写
$class1、$class2、$class3
等?如果您初始化一个已使用的变量(
$class='
),则不确定您的确切意思无论它是否在脚本的早期使用。对于多个输入,我是否能够在每个字段上使用相同的
$class
变量,或者我是否必须编写
$class1、$class2、$class3
等?如果您初始化一个已经使用的变量(
$class='
),我不确定您的确切意思它是否在脚本的早期使用并不重要。