2014-02-18 1 views
2

Я использую JQuery Ajax для отправки данных формы и отображения сообщения об успешном завершении. Все работает отлично, но я не могу показать сообщение об успешном завершении. Ниже приведен код: JavascriptНе удалось распечатать сообщение об успешном использовании с использованием Jquery Ajax

<script> 
$(document).ready(function() { 
    $('form').submit(function(event) { //Trigger on form submit     
     $('#stage').empty(); 

     var postForm = { //Fetch form data 
      "name": $("#name").val(), 
      "element_4_1": $("#element_4_1").val(), 
      "element_4_2": $("#element_4_2").val(), 
      "element_4_3": $("#element_4_3").val(), 
      "email": $("#email").val(), 
      "input4": $("#input4").val(), 
     }; 

     $.ajax({ //Process the form using $.ajax() 
      type  : 'POST', //Method type 
      url   : 'contact.php', //Your form processing file url 
      data  : postForm, //Forms name 
      dataType : 'json', 
      success  : function(data) { 
       console.log("inside success3") ; 
       alert(data); 
       $("#stage").html(data); 

       if (!data.success) { //If fails 
        if (data.errors) { //Returned if any error from process.php 
         $('.throw_error').fadeIn(1000).html(data.errors); //Throw relevant error 
         console.log("inside failure") ; 
        } 
       } else { 
        console.log("inside success") ; 
        $('#stage').fadeIn(1000).append('<p>' + data.posted + '</p>'); 
        console.log("inside success2") ; 
       } 
      } 
     }); 
     event.preventDefault(); //Prevent the default submit 
    }); 
}); 
</script> 

PHP:

<?php 

ini_set('display_errors','On'); 
error_reporting(E_ALL); 
$errors = array(); 
$form_data = array(); 
header('Content-type: application/json'); 
echo json_encode($form_data); 

$name=$_POST['name']; 
$phone=chop($_POST['element_4_1']); 
$phone.=chop($_POST['element_4_2']); 
$phone.=chop($_POST['element_4_3']); 
$email=chop($_POST['email']); 
$message1=chop($_POST['input4']); 

if ($name && $phone && $email) { 

    $headers = "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; 
    $headers .= "From: [email protected] \n"; 
    $recipient= "[email protected]"; 
    $subject="Online Enquiry "; 
    $message="\nName     : $name\n"; 
    $message.="\nPhone     : $phone\n"; 
    $message.="\nEmail ID    : $email\n"; 
    $message.="\nMessage    : $message1\n"; 

    //send auto-reply 
    $subject_reply="Thank you for contacting us"; 
    $message_reply="Thank you for contacting us. We will get back to you shortly."; 
    //mail($email, $subject_reply, $message_reply, $headers); 

    //Send Mail 
    //=========== 
    if(isset($recipient, $subject, $message, $headers)) { 
     error_log($message); 
     $form_data['status'] = 'success'; 
     error_log($form_data['status']); 

    } else { 
     $form_data['status'] = 'error'; 
     error_log($form_data['status']); 

    } ?> 

HTML

<div id="stage"> 
</div> 

Как я могу напечатать сообщение об успешном

+0

У вас есть ошибка, которая лучше объясняет проблему? Консоль разработчика на Chrome или Firefox? – gafreax

+1

Как проверить, установлены ли эти переменные, указать, была ли почта успешной? – Barmar

+0

Я использую firebug ... Я попытался напечатать значения переменных в журналах, а также – user3004356

ответ

2

Вы это в начале вашего PHP скрипта:

echo json_encode($form_data); 

где $form_data является пустым массивом в то время.

Вы должны удалить это и положить его в конец.

+0

Я попробовал ур ответить Я на шаг впереди. Я вижу, что 'console.log (« успех 3 »)' в функции успеха напечатано в консоли firebug. Но сообщение об успешном завершении не отображается. – user3004356

+0

@ user3004356 Не делайте 'alert (data);'. '' Console.log (data); 'вместо этого, чтобы вы могли точно проверить, что именно содержит. Также обратите внимание, что' data' only содержит то, что вы добавили в массив в php, поэтому используйте '$ (" # stage "). html (data);' должен быть '$ (" # stage "). html (data.status);'. – jeroen

+0

Я получаю это на консоли - 'Object {status =" success "}' – user3004356

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