3

ログインにデータが入力されたときにデータが正しく、この比較応答を行うため、わかりません。success== "success"何も起こらず、firebugで確認すると、結果は次のようになります。

応答

[{"ncontrol":"09680040","nombre":"Edgardo","apellidop":"Ramirez","apellidom":"Leon","tUser":"Admin","status":"success"}]

データを送信するjQuery.ajaxスクリプト

    // jQuery.ajax script to send json data to php script

    var action = $("#formLogin").attr('action');
    var login_data = {
        ncontrol: $("#ncontrolLogin").val(),
        password: $("#passwdLogin").val(),
        is_ajax: 1
    };  

    $.ajax({
        type: "POST",
        url: action,
        data: login_data,
        dataType: "json",
        success: function(response)
        {   
            **if(response.status == "success")** {
                $("#status_msg").html("(+) Correct Login");

            }
            else {
                $("#status_msg").html("(X) Error Login!");
            }
        }
    }); 
    return false;   

そして、jQuery.ajaxからの変数を処理するためのPHPスクリプトです

$ncontrolForm = $_REQUEST['ncontrol'];
$passForm = $_REQUEST['password'];
$jsonResult = array();
    $query = "SELECT * FROM users WHERE ncontrol = '$ncontrolForm' AND cve_user = SHA('$passForm')";
    $result = mysqli_query($con, $query) or die (mysqli_error());
    $num_row = mysqli_num_rows($result);
    $row = mysqli_fetch_array($result);
    if( $num_row >= 1 ) {       

        $_SESSION['n_control'] = $row['ncontrol'];
        $_SESSION['t_user'] = $row['tUser'];

        $jsonResult[] = array (
            'ncontrol' => $row['ncontrol'],
            'nombre' => $row['nombre'],
            'apellidop' => $row['apellidop'],
            'apellidom' => $row['apellidom'],               
            'tUser' => $row['tUser'],
            'status' => 'success',

        );
        header('Content-Type: application/json');
        echo json_encode($jsonResult);

    }
4

1 に答える 1

6

配列があるので、次のようにします。

if(response[0].status == "success") {

オブジェクトは配列の最初の項目です。

編集:

PHPを詳しく見ると、クエリ応答の複数の行をループして、それらをに追加しようとしているようです$jsonResult。私はそれを正しく見ていますか?

于 2012-05-15T16:17:10.137 に答える