无法获得ajax的成功消息

时间:2013-02-25 20:18:57

标签: php javascript ajax

我不知道为什么我无法在JSON中获取成功消息。数据插入数据库很好,所以它可以工作,但回调消息(成功)没有。我不知道为什么。

此文件是在数据库中插入数据的位置。

include ("connect_to_mysql.php");
if ( isset($_POST['register'])) {
    $First_Name = mysql_real_escape_string($_POST['firstname']);
    $Last_Name = mysql_real_escape_string($_POST['lastname']);
    $Email = mysql_real_escape_string($_POST['email']);
    $Password = mysql_real_escape_string($_POST['password']);
    $Gender = mysql_real_escape_string($_POST['gender']);

    $sql3 =mysql_query("SELECT email FROM members WHERE email = '$Email' ");
    $result3= mysql_num_rows($sql3) ;
    $found ='';
    if ($result3 == 1 ) { 
        $found = "email already exist ! ";
    } else {
        mysql_query("INSERT INTO members (firstname, lastname,gender, email, password,bio_body, sign_up_date , account_type)
        VALUES( '".$First_Name."', '".$Last_Name."','".$Gender."','".$Email."','".$Password."','NULL' ,NOW() , 'a' )  ");
        $found = "registered succefully !";
    }
    echo json_encode(array('returned_val' => "$found"));
    //-- i have tried this also echo json_encode(array('returned_val' => $found));
}

这是我的ajax

$(document).ready(function(){

    $('#register').click(function() {
        $('#mydata').html('Saving your data...<img src="images/loading.gif" />');
        $.ajax({
            url: "sendata.php",
            dataType: 'json' ,
            data: {
                firstname: firstname.value,
                lastname: lastname.value,
                email: email.value,
                password: password.value,
                gender: gender.value
            },
            type: 'POST',
            success: function(data){
                $('#mydata').html("<span style='font-size:18px; color: green;'> Your data is saved succefully! </span>").delay(3000).fadeOut('fast');
                alert(data.returned_val);
                alert (1);
            }
        });
    });
});

OBS:关于mysql或一些安全性的东西(passowrd)我知道,当我解决这个问题时,我会修复它们。

谢谢你的时间。

编辑:我没有错误消息

EDIT。 HTML格式

<form action="" method="post" enctype="multipart/form-data">
    <table width="100%" class="noborder" >
        <tr>
            <td width="23%" height="47" class="right">First Name:</td>
            <td width="77%" class="left left_nowrap">
                <input type="text" class="left left_nowrap tb10  border1" name ="firstname" id="First_Name" value="<?php echo $_SESSION['firstname'];  ?>" />
            </td>
        </tr>
        <tr>
            <td height="47" class="right">Last Name:</td>
            <td valign="middle" class="left left_nowrap">
                <input type="text" class="left  left_nowrap tb10 border1" name ="lastname" id="Last_Name"  value="<?php echo  $_SESSION['lastname'];  ?>" /><br/>
            </td>
        </tr>
        <tr>
            ........
            <td valign="middle" class="left"><input id="register" name="register" type="button" class="submit1 tb10 border4" value="Sign - Up" /></td>

3 个答案:

答案 0 :(得分:0)

如果jQuery认为发送数据出错了,您可以使用error回调(documentation),例如:

$.ajax({
  url: "sendata.php",
  dataType: 'json' ,
  data: {
    firstname : firstname.value,
    lastname : lastname.value,
    email : email.value,
    password : password.value,
    gender : gender.value
  },
  type : 'POST',
  success: function(data){
    $('#mydata').html("<span style='font-size:18px; color: green;'> Your data is saved succefully! </span>").delay(3000).fadeOut('fast');
    alert(data.returned_val);
    alert (1);
  },
  error: function(data){
    console.log(data);
  }
});

通过查看控制台中打印的数据,您应该能够了解为什么jQuery不会调用您的成功回调。

答案 1 :(得分:0)

您应该检查PHP错误日志。那里必有一些东西。由于PHP方面的一些错误,你的javascript可能没有回复任何答案。如果PHP错误日志中没有任何内容,那么在ajax请求中实现错误处理程序,那里必须有一些东西。

答案 2 :(得分:-1)

使用console.log(data)快速验证ajax响应。