Вызов формы, при повторном вызове (ajax)
Привет, есть сайт promojet.su есть всплывающая форма, работает на ajax,
после того как удачано отправили форму, выскакивает сообщение "спасибо" и если закрыть сообщение и опять вызвать форму не обновляя страницу, то формы не будет, а только сообщение "спасибо" . Так вот вопрос, как вызвать по новой форму, не обновляя страницу. код js: $(document).ready(function() { //if submit button is clicked $('#form').submit(function () { //Get the data from all the fields var name = $('input[name=name]'); var email = $('input[name=email]'); var tel = $('input[name=tel]'); //Simple validation to make sure user entered something //If error found, add hightlight class to the text field if (name.val()=='') { name.addClass('hightlight'); return false; } else name.removeClass('hightlight'); if (email.val()=='') { email.addClass('hightlight'); return false; } else email.removeClass('hightlight'); if (tel.val()=='') { tel.addClass('hightlight'); return false; } else tel.removeClass('hightlight'); //organize the data properly var data = 'name=' + name.val() + '&email=' + email.val() + '&tel=' + tel.val(); //disabled all the text fields //show the loading sign $('.loading').show(); //start the ajax $.ajax({ //this is the php file that processes the data and send mail url: "process.php", //GET method is used type: "GET", //pass the data data: data, //Do not cache the page cache: false, //success success: function (html) { //if process.php returned 1/true (send mail success) if (html==1) { //hide the form //show the success message $('.blk-data .form1').fadeOut('slow'); $('.loading').fadeOut('slow'); $('.done').fadeIn('slow'); //if process.php returned 0/false (send mail failed) } else alert('Sorry, unexpected error. Please try again later.'); } }); //cancel the submit button default behaviours return false; }); }); код php //Retrieve form data. //GET - user submitted data using AJAX //POST - in case user does not support javascript, we'll use POST instead $name = ($_GET['name']) ? $_GET['name'] : $_POST['name']; $email = ($_GET['email']) ?$_GET['email'] : $_POST['email']; $tel = ($_GET['tel']) ?$_GET['tel'] : $_POST['tel']; //flag to indicate which method it uses. If POST set it to 1 if ($_POST) $post=1; //Simple server side validation for POST data, of course, you should validate the email if (!$name) $errors[count($errors)] = 'Please enter your name.'; if (!$email) $errors[count($errors)] = 'Please enter your email.'; if (!$tel) $errors[count($errors)] = 'Please enter your tel.'; //if the errors array is empty, send the mail if (!$errors) { //recipient $to = 'Your Name <hello@domain.ru>'; //sender $from = $name . ' <' . $email . '>'; //subject and the html message $subject = 'Сообщение с сайта PromoJet '; $message = ' <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head></head> <body> <table> <tr><td><strong>Имя:</strong></td><td>' . $name . '</td></tr> <tr><td><strong>Email:</strong></td><td>' . $email . '</td></tr> <tr><td><strong>Телефон:</strong></td><td>' . $tel . '</td></tr> </table> </body> </html>'; //send the mail $result = sendmail($to, $subject, $message, $from); //if POST was used, display the message straight away if ($_POST) { if ($result) echo 'Thank you! We have received your message.'; else echo 'Sorry, unexpected error. Please try again later'; //else if GET was used, return the boolean value so that //ajax script can react accordingly //1 means success, 0 means failed } else { echo $result; } //if the errors array has values } else { //display the errors message for ($i=0; $i<count($errors); $i++) echo $errors[$i] . '<br/>'; echo '<a href="/">Back</a>'; exit; } //Simple mail function with HTML header function sendmail($to, $subject, $message, $from) { $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n"; $headers .= 'From: ' . $from . "\r\n"; $result = mail($to,$subject,$message,$headers); if ($result) return 1; else return 0; } |
soltx,
$('.blk-data .form1').fadeOut('slow').delay(3000).fadeIn('slow'); $('.loading').fadeOut('slow'); $('.done').fadeIn('slow').delay(3000).fadeOut('slow'); |
Rise,
спасибо работает, но эффект нужен другой, что бы сообщение висело и если его закрыть и повторно вызвать появилась сброшенная форма. |
Rise, спасибо
|
Часовой пояс GMT +3, время: 00:03. |