2014-01-02 3 views
0

У меня возникли проблемы с формой контакта Ajax, в частности, с файлом php.Форма контакта AJAX jQuery не работает должным образом

Ajax код:

var dataString = 'name=' + name + '&email=' + email + '&message=' + message + '&submitted=true&isAjax=1'; 
     $.ajax({ 
      type: "POST", 
      url: $('.form').attr('action'), 
      data: dataString, 
      success: function (msg) { 
       $('.img.ajax-loader').css({ visibility: 'hidden' }); 

       if (msg == 'Mail sent') { 

        $('.response-output').html(contactFormVars.contact_form_error).removeClass('mail-sent-ng, validation-errors'); 
        $('.response-output').html(contactFormVars.contact_form_success_message).addClass('mail-sent-ok'); 
       } else { 
        $('.response-output').html(contactFormVars.contact_form_error).removeClass('mail-sent-ok, validation-errors'); 
        $('.response-output').html(contactFormVars.contact_form_error).addClass('mail-sent-ng'); 
        $('.contactForm .submit').removeAttr("disabled"); 
       } 

       $('.contactForm .submit').removeAttr("disabled"); 
      }, 
      error: function (ob, errStr) { 
       $('.response-output').html(contactFormVars.contact_form_error).removeClass('mail-sent-ok, validation-errors'); 
       $('.response-output').html(contactFormVars.contact_form_error).addClass('mail-sent-ng'); 
       //Activate the submit button 
       $('.contactForm .submit').removeAttr("disabled"); 
      } 

     }); 
     $(".ajax-loader").css("visibility", "hidden"); 
     return false; 

PHP:

<? php 
if ($_POST) { 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 
    //send email 
    mail("[email protected]", "Subject" .$email, $message); 
    return true; 
} 
?> 

Я сделал простой PHP скрипт почты, электронной почты до получателя, но у меня есть вопрос о том, как вернуть значение возврата для сценария Ajax, чтобы показать сообщение о том, что сообщение было отправлено.

Извините за моего бедного английского, я надеюсь, что я четко описал свою проблему. Буду признателен за вашу помощь. Спасибо.

+1

_s В частности, файл php. Можете ли вы показать этот файл? Что не работает с отображением вашего сообщения? Нет сообщения вообще или? – putvande

+0
+0

Получаете ли вы какие-либо ошибки в своей консоли? –

ответ

0

Изменение PHP скрипт

if($_POST){ 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 
    //send email 
    mail("[email protected]", "Subject" .$email, $message); 
    echo "Mail sent"; 
} 

добавить обшивку() на JS, как

if (msg.trim() == 'Mail sent') { 

} 
0

попробовать это

$.ajax({ 
     type: "POST", 
     url: $('.form').attr('action'), 
     data: dataString, 
     success: function (msg) { 
      $('.img.ajax-loader').css({ visibility: 'hidden' }); 
      if (msg == '1') { 
       // do what you want 
      } 
     }); 
0

Попробуйте это:

<?php 
$email = $_POST['email']; 
$message = $_POST['message']; 
$name = $_POST['name']; 
$isAjax = isset($_POST['isAjax']) && $_POST['isAjax'] == "1"; 

$mailSent = dealWithEmail($name, $email, $message); 

if ($isAjax) { 
    if ($mailSent) { 
     echo "Your message has been sent"; // This will be the message received 
    } else { 
     echo "Your message has NOT been sent"; // This will be the message received 
    } 
} else { 
    // redirect to "email sent (or not)" page 
} 
+0

Спасибо. В этом случае он работал, просто возвращает мне сообщение о том, что письмо не было отправлено, то есть: contactFormVars.contact_form_error Пришла почта, и она должна вернуть значение: contactFormVars.contact_form_success_message Я не знаю, что делать дальше: -) – user3153750

Смежные вопросы