在提交按钮单击,要提交表单并显示隐藏的div

时间:2016-02-01 14:57:39

标签: javascript php

我为表单提交了PHP:

if($_POST['submit']) {
    $recipient="test@gmail.com";
    $subject="A Hooray moment has been shared with you";
    $sender=$_POST["sender"];
    $senderEmail=$_POST["senderEmail"];
    $message=$_POST["message"];

    $mailBody="Name: $sender\nEmail: $senderEmail\n\n$message";

    mail($recipient, $subject, $mailBody, "From: $sender <$senderEmail>");
?>

最初,javascript只是为了揭示点击而不是包含一点来将原始设置设置为隐藏&#39; .done div。那时还有一个CSS代码将默认.done显示设置为none。原始的javascript在下面。

$( ".button" ).click(function(ev) {
    ev.preventDefault();
    $(".done").fadeIn('slow');
});

我现在已经编写了javascript来点击提交按钮后显示DIV,没有CSS显示:无设置。这是当前的Javascript:

$('document').ready(function() {
    $('.done').hide();
    $('.button').click(function(e) {
          $('.done').show();
          //e.preventDefault();
    });
});

当我填写表单并点击提交按钮时,PHP将加载,但div不会出现。我收到一封确认电子邮件(我想要),但没有div。当我设法让div出现时,PHP部分停止工作(按下提交按钮将显示隐藏的div,但表单实际上没有提交,我没有收到任何电子邮件)。当PHP部分工作,我得到一封确认电子邮件,然后.done div永远不会显示。下面是我的html供参考。

在点击提交按钮后,我正在寻找一种方法来显示div并提交表单(两个事件)。用PHP(或JS)编写它是有意义的,但是我对PHP不太熟悉,无法解决这个问题。提前感谢您的帮助。

<div class="col-md-6 col-md-offset-3">
    <div class="done">
        <h2>HOORAY!!!</h2>
        <img src="http://usatftw.files.wordpress.com/2013/11/824607200.gif?w=1000" alt="Touchdown dance" style="width:500px;height:400px; margin-top:0px; padding-top:0px;"></img>
    </div>
    <div class="form-group col-md-6 col-md-offset-3">
        <input type="radio" class="form-control radio" id="radio1"/>OMG! The greatest thing happened today...<br />
        <input type="radio" class="form-control radio" id="radio2"/>You wouldn't believe what happened...<br />
        <input type="radio" class="form-control radio" id="radio3"/>No s*** you'll never guess what happened...<br />
    </div>

    <form method="post" action="testemailform.php" id="form">
        <div class="container1">
            <input name="sender" placeholder="Name (Optional)">
        </div>
        <div class="container2">
            <input name="senderEmail" placeholder="Your Email (Optional)">
        </div>
        <div class="container3">
            <textarea rows="5" cols="50" name="message" placeholder="Tell me what happened!"></textarea>
        </div>
        <div class="button">
            <input type="submit" name="submit">
        </div>
    </form>
</div>

2 个答案:

答案 0 :(得分:0)

而不是javascript,使用php在提交表单时显示div。

所以创建新的php变量$ css,它包含样式表代码。

<?php

//keep variable blank when page is loaded first time
$css = "";

if($_POST['submit']) {

   //add css to variable when form is posted
   $css = "display: none;";

   ...your email code goes here...

}
?>

现在在html中,打印$ css变量。

<div class="done" style="<?php echo $css; ?>" >

答案 1 :(得分:0)

当您提交表单时(正如您所做的那样)页面重新加载.. ..之前任何JS功能都没有意义,因为您希望Javascript记住在最后一页上,您单击了一个按钮...

使用PHP在表单提交后设置一个变量,然后可以用来确定是否显示额外的<div>