Javascript 无法使用Jquery Ajax打印成功消息

Javascript 无法使用Jquery Ajax打印成功消息,javascript,php,jquery,Javascript,Php,Jquery,我使用jQueryAjax发布表单数据并显示成功消息。一切正常,但我无法显示成功消息。代码如下: Javascript <script> $(document).ready(function() { $('form').submit(function(event) { //Trigger on form submit $('#stage').empty(); var postForm = { //Fetch

我使用jQueryAjax发布表单数据并显示成功消息。一切正常,但我无法显示成功消息。代码如下: Javascript

<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>  

$(文档).ready(函数(){
$('form').submit(函数(事件){//表单提交时触发
$('#stage').empty();
var postForm={//获取表单数据
“名称”:$(“#名称”).val(),
“element_4_1”:$(“#element_4_1”).val(),
“element_4_2”:$(“#element_4_2”).val(),
“element_4_3”:$(“#element_4_3”).val(),
“电子邮件”:$(“#电子邮件”).val(),
“input4”:$(“#input4”).val(),
};
$.ajax({//使用$.ajax()处理表单)
类型:'POST',//方法类型
url:'contact.php',//您的表单处理文件url
数据:postForm,//表单名称
数据类型:“json”,
成功:功能(数据){
控制台日志(“内部成功3”);
警报(数据);
$(“#stage”).html(数据);
if(!data.success){//if失败
if(data.errors){//如果process.php中有任何错误,则返回
$('.throw_error').fadeIn(1000.html(data.errors);//抛出相关错误
控制台日志(“内部故障”);
}
}否则{
控制台日志(“内部成功”);
$('#stage').fadeIn(1000).append(''+data.posted+'

'); 控制台日志(“内部成功2”); } } }); event.preventDefault();//防止默认提交 }); });
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: sales@test.com \n";
    $recipient= "test@test.in";
    $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>  


如何打印成功消息

在php脚本的开头有以下内容:

echo json_encode($form_data);
其中,
$form_data
当时是一个空数组


您应该删除它并将其放在末尾。

您是否有一个错误可以更好地解释问题?chrome或Firefox上的开发者控制台?检查是否设置了这些变量如何判断邮件是否成功?我使用firebug…我尝试将日志中变量的值打印为well@Barmar我在HTML表单中进行验证,在这里我设置了所有必需的字段。我是做对了还是应该用另一种方式来做。请告诉我你应该使用
if(mail(…){success stuff}或者{failure stuff}
。我尝试了你的答案,我领先了一步。我在firebug控制台中打印的success函数中看到了
console.log(“success 3”)
。但仍然没有显示成功消息。@user3004356不执行
警报(数据)。Do
console.log(数据)以便您可以检查它确切包含的内容。还要注意,
data
只包含您在php中添加到数组中的内容,因此使用
$(“#stage”).html(数据)
应该是
$(“#stage”).html(data.status)
。我在控制台上得到这个-
对象{status=“success”}
@user3004356对,这就是您在php中添加到数组中的内容。请参阅我上一篇评论的最后一部分。旁注:由于前面提到的原因,checking.success和.errors将产生未定义的结果