-3

これが何度か投稿されていることは知っていますが、理解できないようです。私がやろうとしていることの概要は次のとおりです。

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");

} ?>

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>
4

2 に答える 2

4

あなたはそうしない。PHPはサーバー上で実行されます。Javascript はクライアント上で実行されます。せいぜいPHPは次のよ​​うなことができます

<?php
echo <<<EOL
<script type="text/javascript">
    yourFunction();
</script>
EOL;
?>

ブラウザによってページがロードされたときに関数が呼び出されるようにします。しかし、それ以外の場合、ページがクライアントに送信されると、PHP が手を差し伸べてそのページに何かをやり直すように指示する方法はありません。

于 2013-09-06T21:52:41.503 に答える
1

あなたはそれを後ろから見ています。PHP はサーバー上で実行され、JavaScript はユーザーのブラウザで実行されるため、PHP は JavaScript を実行できません。javascript から (AJAX 経由で) PHP を呼び出すことはできますが、PHP から javascript を呼び出すことはできません。

于 2013-09-06T21:52:22.757 に答える