php - 可以在 php 标签之间放置 script 标签吗?

标签 php javascript jquery forms

我试图在表单验证用户输入后使用 jquery 使 div 淡出并推送提交。我试图避免表单在验证之前淡出,以防用户没有输入正确的信息。

我想知道是否可以在我的 php 标签之间添加脚本标签,这样一旦验证完成,我就可以快速运行 javascript,然后继续使用 php 的其余部分,如下所示:

<?php

    $name = trim($_POST['name']);
    $email = $_POST['email'];
    $comments = $_POST['comments'];

    $site_owners_email = 'zeckdude@gmail.com'; // Replace this with your own email address
    $site_owners_name = 'Chris Seckler'; // replace with your name

    if (strlen($name) < 2) {
        $error['name'] = "Please enter your name";  
    }

    if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $email)) {
        $error['email'] = "Please enter a valid email address"; 
    }

    if (strlen($comments) < 3) {
        $error['comments'] = "Please leave a comment.";
    }

    if (!$error) {

        require_once('phpMailer/class.phpmailer.php');
        $mail = new PHPMailer();

        $mail->From = $email;
        $mail->FromName = $name;
        $mail->Subject = "Website Contact Form";
        $mail->AddAddress($site_owners_email, $site_owners_name);
        $mail->AddAddress('zeckdude@gmail.com', 'Chris Seckler');
        $mail->Body = $comments;



        $mail->Send();
?>

<script type="text/javascript">
   $(function(){
      $('#container').fadeOut(1000);
   });
</script>



<?php 
        echo "<li class='success'> Congratulations, " . $name . ". We've received your email. We'll be in touch as soon as we possibly can! </li>";
        echo nl2br("<b>Message Sent:</b>

         From: $name

         Email: $email

         Message: $comments

         <br/><a href='http://www.google.com'>Link</a>");




    } # end if no error
    else {

        $response = (isset($error['name'])) ? "<li>" . $error['name'] . "</li> \n" : null;
        $response .= (isset($error['email'])) ? "<li>" . $error['email'] . "</li> \n" : null;
        $response .= (isset($error['comments'])) ? "<li>" . $error['comments'] . "</li>" : null;

        echo $response;
    } # end if there was an error sending

?>

最佳答案

是的,但是你的结果不会是你想要的。

PHP 全部在文档发送到客户端(用户)之前执行。客户端收到文档后执行 JavaScript。

相关评论较少: 您的脚本容易受到通过 POST 的跨站脚本 (XSS) 攻击。在解决此问题之前,请勿在真实网站上使用它。

实现您可能想要做的事情的一种方法是让 php 代码的第二部分在隐藏的 div 中呈现 html 内容 <div id='content' style="display:none">...other content...</div> 。然后,在淡入淡出完成后的javascript中,使用javascript清除div中的display:none属性以使其显示。

祝你好运!

关于php - 可以在 php 标签之间放置 script 标签吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/692157/

相关文章:

php - 我应该使用什么数据类型在 MySQL 上存储长加密消息?

javascript - Node 中的 jstoxml 转换器模块未以正确的结构解析数据

javascript - 使用 AngularJS/Phaser.io 进行游戏并销毁方法

javascript - AngularJS中如何绑定(bind)错误数据 "Invalid username and password"和 "Username already exists"

jquery - 使用 jQuery 检索按钮值

jquery - 使用 jQuery 获取动态背景位置

PHPExcel:写入期间无法使用缓存

php - 通过 PHP 伪造一个 $_POST

javascript - 占位符不更新选项值

php - 有没有办法在 PHP 中检查任何电子邮件是否处于事件状态?