用php在不同的页面上显示div

时间:2017-04-13 13:15:15

标签: php html phpmailer

我希望我的联系表单更改为“成功发送邮件”。邮件发送时因此,联系表格中的div必须为display:none,并且来自邮件的div成功'必须display:block对吗?

不知怎的,我不能在这方面取得成功。

这是一个打印屏幕,我想要它: How I want that it gets chanced

这是我使用的php代码(只是最终原因,这是唯一需要的部分):

$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

if ($success) {
    ?>
    <style type="text/css">
        #mail_succeed {
            display: block;
        }
        #mail_failed {
            display: none;
        }
        #contat-area{
            display: none;
        }
    </style>
    <?php
    header('Location: index.php#contact');
    exit();
} else {
    ?>
    <style type="text/css">
        #mail_failed {
            display: block;
        }
        #mail_succeed {
            display: none;
        }
        #contact-area{
            display: none;
        }
    </style>
    <?php
    header('Location: index.php#contact');
    exit();
}
?>

这是我现在的html代码(它退出了一些代码,我还添加了模态,因为它可能很重要):

<div id="myModal" class="modal">
         <div class="modal-content">
                <div class="modal-header">
                    <span class="close">x</span>
                    <h4>Contact Form</h4>
                </div>
                <div class="modal-body">
                    <div id="contact-area">
                        <form method="post" action="contactengine.php">
                            <div class="nametel">
                                <div class="name">
                                    <label for="Name">Name:</label>
                                    <input type="text" name="Name" id="Name">
                                </div>
                                <div class="tel">
                                    <label for="Tel">Tel:</label>
                                    <input type="text" name="Tel" id="Tel">
                                </div>
                            </div>

                            <label for="Email">Email:</label>
                            <input type="text" name="Email" id="Email">

                            <label for="Message">Message:</label><br>
                            <textarea name="Message" rows="20" cols="20" id="Message"></textarea>
                            <input type="submit" name="submit" value="Send" class="submit-button" onclick="showDiv()">
                        </form>
                        <div style="clear: both;"></div>
                    </div>
                    <div id="mail_succeed" style="display: none">
                        <h3>Mail succesfull send, go back to </h3>
                        <span class="close"><a href="index.php#contact">contact page</a></span>
                    </div>
                    <div id="mail_failed" style="display: none">
                        <h3>Mail not send, go back to </h3>
                        <span class="close"><a href="index.php#contact">contact page</a></span>
                    </div>
                </div>
                <div class="modal-footer"></div>
            </div>
        </div>

我可能发送了很多代码,但我不确定要留下什么,因为它很重要。

1 个答案:

答案 0 :(得分:1)

如果您不想使用jQuery/Ajax,则可以执行以下操作:

contactengine.php中,将标题重定向更改为:

header('Location: index.php?resp=1#contact');

header('Location: index.php?resp=0#contact');

分别为成功和失败。

然后在index.php上添加这个小的PHP代码到你的头部(或者你定义样式的地方):

if(isset($_GET['resp']) && $_GET['resp']==1){
     echo '
       <script type="text/javascript">$("#ButtonThatOpensModal").click();</script>
       <style type="text/css">
        #mail_succeed {
            display: block;
        }
        #mail_failed {
            display: none;
        }
        #contat-area{
            display: none;
        }
    </style>';
}
elseif(isset($_GET['resp']) && $_GET['resp']==0){
     echo '<style type="text/css">
        #mail_failed {
            display: block;
        }
        #mail_succeed {
            display: none;
        }
        #contact-area{
            display: none;
        }
    </style>';
}