如何告诉我的PHP脚本运行Javascript函数?

时间:2013-09-06 21:50:49

标签: php javascript html forms

我知道这已经发布了好几次,但我似乎无法弄明白。以下是我正在尝试做的事情的概述:

我有一个位于PHP文件中的HTML表单。在表单提交时,该操作将调用表单所在的同一PHP页面。在这样做时,我的服务器在该页面的顶部运行一些PHP代码,它们收集插入到表单中的信息并通过电子邮件发送给我。发送电子邮件后,我想要隐藏包含我的表单的DIV,并将其替换为将出现的隐藏的DIV,感谢用户提交表单等。

我的问题是,如何让PHP脚本运行Javascript函数?我的电子邮件发送得很好,我只是不能让DIV取代。

这是我的代码。

HTML

                        <form id="contact-form" name="contact-form" action="contact.php" method="post">
                        <table>
                            <tr>
                                <td width="79"><p><font style="color:#ebe775;">*</font>Name:</p></td>
                                <td width="309"><input type="text" name="name" id="name" placeholder="First Last" size="45" required></td>
                            </tr>
                            <tr>
                                <td><p><font style="color:#ebe775;">*</font>Email:</p></td>
                                <td><input type="email" name="email" id="email" size="45" required></td>
                            </tr>
                            <tr>
                                <td><p><font style="color:#ebe775;">*</font>Message:</p></td>
                                <td><textarea name="message" id="message" cols="42" rows="8" required></textarea></td>
                            </tr>
                            <tr>
                                <td style="text-align:center;" colspan="2"><input type="submit" value="Submit" name="submit" id="submit"><input type="hidden" name="parse_var" id="parse_var" value="contact-form"></td>
                            </tr>
                        </table>
                    </form>
                </div>
                <div id="hidden_div" style="display:none;">
                    <h2>Thank You!</h2>
                    <p>Your form was submitted. We'll review it and get back with you as soon as we can.</p>
                </div>
            </div>
        </div>

PHP脚本

<?php
if ($_POST['parse_var'] == "contact-form"){
    $emailSubject = 'New CONTACT Form Submission';
    $to = 'my.email@server.com';

    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];

    $body = <<<EOD




        以下信息是使用JakesCreativeDesign.com上的CONTACT表单提交的。         


        名称:$ name

        电子邮件:$ email

        消息:$ message

EOD;

    $headers = "From: contact@jakescreativedesign.com\r\n";
    $headers .= "Content-type: text/html\r\n";

    mail("$to", "$emailSubject", "$body", "$headers");

} ?&GT;

Javascript功能

            <script type="text/javascript">
             function showHide() {
                    var div = document.getElementById("hidden_div");
                   if (div.style.display == 'none') {
                     div.style.display = '';
                   }
                   else {
                     div.style.display = 'none';
                   }
               var div = document.getElementById("form");
                   if (div.style.display == '') {
                     div.style.display = 'none';
                   }
                   else {
                     div.style.display = '';
                   }
             }
        </script>

2 个答案:

答案 0 :(得分:4)

你没有。 PHP在服务器上运行。 Javascript在客户端上运行。至多PHP可以像

那样做一些事情
<?php
echo <<<EOL
<script type="text/javascript">
    yourFunction();
</script>
EOL;
?>

以便在浏览器加载页面时调用该函数。但是,一旦页面被发送到客户端,PHP就没有办法伸出手来告诉该页面再做一些事情。

答案 1 :(得分:1)

你正在向后看。 PHP无法运行javascript,因为PHP在服务器上运行,javascript在用户的浏览器中运行。你可以从javascript(通过AJAX)调用PHP,但你不能从PHP调用javascript。