-1

mailform contact.php 成功后重新加载页面.. :(

我使用了 validate.js .. validate.js。这是一个问题吗?

对不起,我会给你看代码。请

html

 <form id="contactform" action="contact.php" method="post" class="validateform" name="send-contact">
   <div id="sendmessage">
      thanks
   </div>
   <div class="controls">
      <div class="row">
         <div class="col-md-12">
            <div class="form-group">
               <input type="text" name="subject" data-rule="subject" data-msg="" placeholder="hi~"/>
               <div class="help-block with-errors"></div>
            </div>
         </div>
      </div>
      <div class="col-md-12">
         <input type="submit" class="btn btn-success btn-send" value="Send message" >
      </div>
   </div>
   </div>
</form>

联系人.php

<?php

$headers = array('Content-Type: text/plain; charset="UTF-8";', 
    "From: ". $_POST['name'] . "<". $_REQUEST['email'].">", 
); 

mail($sendTo, $subject, $emailText, implode("\n", $headers));

$responseArray = array('type' => 'success', 'message' => $okMessage);

catch (\Exception $e) {
   $responseArray = array('type' => 'danger', 'message' => $errorMessage);
}

if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
   $encoded = json_encode($responseArray);

   header('Content-Type: application/json');

   echo $encoded;
}
else {
   echo $responseArray['message'];
}

最后编码

$(function () {

$('#contact-form').validator();

$('#contact-form').on('submit', function (e) {
    if (!e.isDefaultPrevented()) {
        var url = "contact.php";

        $.ajax({
            type: "POST",
            url: url,
            data: $(this).serialize(),
            success: function (data)
            {
                var messageAlert = 'alert-' + data.type;
                var messageText = data.message;

                var alertBox = '<div class="alert ' + messageAlert + ' alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>' + messageText + '</div>';
                if (messageAlert && messageText) {
                    $('#contact-form').find('.messages').html(alertBox);
                    $('#contact-form')[0].reset();
                }
            }
        });
        return false;
    }
})
        });

有什么问题?mailform contact.php 成功后重新加载页面.. :(

我使用了 validate.js .. validate.js。这是一个问题吗?

对不起,我会给你看代码。请

4

2 回答 2

0

要在 ajax 调用后重新加载页面,您可以使用它,将其放入您的 ajax 调用中:

location.reload();

使用您的代码:

$.ajax({
    type: "POST",
    url: url,
    data: $(this).serialize(),
    success: function (data)
    {
        var messageAlert = 'alert-' + data.type;
        var messageText = data.message;

        var alertBox = '<div class="alert ' + messageAlert + ' alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>' + messageText + '</div>';
        if (messageAlert && messageText) {
            $('#contact-form').find('.messages').html(alertBox);
            $('#contact-form')[0].reset();
        }

        location.reload();
    }
});
于 2018-06-20T06:40:16.330 回答
0

location.reload();

使用此代码

于 2018-06-20T06:43:58.250 回答