Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
你能把脚本标记放在php标记之间吗?_Php_Javascript_Jquery_Forms - Fatal编程技术网

你能把脚本标记放在php标记之间吗?

你能把脚本标记放在php标记之间吗?,php,javascript,jquery,forms,Php,Javascript,Jquery,Forms,我试图在表单在按下submit之后验证用户输入之后,使用jquery使div淡出。我试图避免表单在验证之前淡出,以防用户没有输入正确的信息 我想知道我是否可以在我的php标记之间添加脚本标记,这样一旦验证完成,我就可以快速运行javascript,然后使用php的其余部分,如下所示: <?php $name = trim($_POST['name']); $email = $_POST['email']; $comments = $_POST['comments'

我试图在表单在按下submit之后验证用户输入之后,使用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

?>

$(函数(){
$(“#容器”).fadeOut(1000);
});

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

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

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

一种方法是让php代码的第二部分在隐藏的div中呈现html内容,
…其他内容…
。然后,在淡入淡出完成后的javascript中,使用javascript清除div中的display:none属性以使其显示


祝你好运

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

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

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

一种方法是让php代码的第二部分在隐藏的div中呈现html内容,
…其他内容…
。然后,在淡入淡出完成后的javascript中,使用javascript清除div中的display:none属性以使其显示


祝你好运

为什么不试试呢?您已经编写了代码。从我在代码中看到的情况来看,您应该能够毫无问题地完成此操作。

为什么不试试呢?您已经编写了代码。从我在您的代码中看到的情况来看,您应该能够毫无问题地完成此操作。

不,这肯定不会按您希望的方式工作-您的php脚本与浏览器没有那种亲密的交互,并且无法返回并使现有表单以这种方式执行其他操作。一旦php开始生成输出并发送页眉,它就是一个全新的网页,不能让旧的网页消失


你应该考虑考虑一下。然后,您可以使用ajax提交表单,并保持活动表单可见。一旦您成功地从ajax提交中返回,然后淡出表单并继续下一步工作

不,这肯定不会按您希望的方式工作-您的php脚本与浏览器没有那种亲密的交互,因此无法返回并使现有表单以这种方式执行其他操作。一旦php开始生成输出并发送页眉,它就是一个全新的网页,不能让旧的网页消失


你应该考虑考虑一下。然后,您可以使用ajax提交表单,并保持活动表单可见。一旦您成功地从ajax提交中返回,然后淡出表单并继续下一步工作

实际上,我刚刚尝试了上面展示的代码,效果非常好。至少看起来不错。以下是现场直播:

我现在要做的是让echo在结尾的信息真正淡入,而不是突然出现

我认为George Deglin的回答

有php代码的第二部分 在div中呈现html内容 这是隐藏的


…其他内容。。。
然后,在javascript中 褪色完成后,使用 清除显示:无 属性,使其成为 出现


这很可能会奏效

事实上,我刚刚尝试了上面展示的代码,效果非常好。至少看起来不错。以下是现场直播:

我现在要做的是让echo在结尾的信息真正淡入,而不是突然出现

我认为George Deglin的回答

有php代码的第二部分 在div中呈现html内容 这是隐藏的


…其他内容。。。
然后,在javascript中 褪色完成后,使用 清除显示:无 属性,使其成为 出现


这很可能会奏效

我尝试了Forms插件,但一旦它显示了警报框,它就会让表单中仍然充满所有的值。一点也不浮华。我想让用户点击submit,from淡出,消息淡入,大约15秒后,空表单淡出,我尝试了表单插件,但一旦它向我显示了警报框,它会让表单仍然充满所有的值。一点也不浮华。我想让用户点击submit,from淡出,消息淡入,15秒后,空表单淡入,感谢您的精彩评论!我在谷歌上搜索了跨站点脚本,这听起来很可怕。你是说我不应该用邮局吗?如何在我的页面上解决XSS问题?下面是一个完整的解释。(锚定方向为预防方向):。PHP有以下函数用于此目的:并解释如何将其应用于POST:在打印任何输出之前,PHP不会全部运行;例如,请参阅输出缓冲区刷新功能。感谢您的宝贵意见!我在谷歌上搜索了跨站点脚本,这听起来很可怕。你是说我不应该用邮局吗?如何在我的页面上解决XSS问题?下面是一个完整的解释。(锚定方向为预防方向):。PHP有以下函数用于此目的:并解释如何将其应用于P
<div id='content' style="display:none">
   ...other content...
</div>