0

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)について私は知っています、この問題を修正するときにそれらを修正します。

御時間ありがとうございます。

編集:エラーメッセージはありません

編集。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>
4

3 に答える 3

0

PHP エラー ログを確認する必要があります。そこに何かがあるに違いない。おそらく、PHP 側のエラーが原因で、javascript から応答が得られません。PHP エラー ログに何もない場合は、エラー ハンドラを ajax リクエストに実装します。そこに何かがあるはずです。

于 2013-02-25T21:20:53.713 に答える
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 が成功のコールバックを呼び出さない理由がわかります。

于 2013-02-25T21:16:14.090 に答える
-1

console.log(data)ajax レスポンスをすばやく検証するために使用します。

于 2013-02-25T20:49:49.323 に答える