1

jsファイルでjsonオブジェクトをphpファイルに送信していますが、送信されたオブジェクトにアクセスする方法がわかりません。

以下のコードの最初の行は私にそれを与えます:{"id":1,"email":"asd@qwe.co.uk","password":"xxxx","location":"London"}

jsファイル

    app.showAlert(JSON.stringify(profile));

    $.ajax({
        type: "GET",
        url:"http://www.domain.co.uk/test-login.php",
        dataType: 'jsonp',
        data: { data: JSON.stringify(profile) },
        success:function(json){
            // do stuff with json (in this case an array)
            app.showAlert(JSON.stringify(json), "Login ok");
        },
        error:function(){
            app.showAlert("Login faild", "Wrong username or password. Please try again.");
        },
    });

php ファイル:

<?php

header('Content-type: application/json');
$ret=$_GET['data'];

$ret=json_decode($ret, true);

echo '['.json_encode($ret[0]).']';

?>

'loggedin' => 1Phpはテストです。ユーザーが正しい詳細を渡すかどうかを確認したいので、そうでない場合はjsonオブジェクトを返します0

でこのオブジェクトにアクセスしようとしました$ret=$_GET['profile'];が、役に立ちませんでした。

私の質問は、json オブジェクトを渡して php でアクセスする方法です。

4

1 に答える 1

1

ajax と PHP の両方を変更して、必要な処理を実行させる必要があります。成功関数内で成功/失敗をテストするように Javascript を変更しました。PHP から JSON を返す場合、エラー イベントで失敗したパスワードを処理したくありません。

PHP の場合、入力と出力が混同されているようです。ご覧のとおり、入力は$data変数にデコードされ、出力は$outputエンコードされて出力されるまで配列になります。

$.ajax({
    type: "GET",
    url:"http://www.domain.co.uk/test-login.php",
    dataType: 'jsonp',
    data: { data: JSON.stringify(profile) },
    success:function(json){
        // do stuff with json (in this case an array)
        if(json.loggedin == '1'){
            alert("logged in");
        } else {
            alert("failed to login");
        }
    }
});

PHP:

$output = array('loggedin' => 0);
$data = json_decode($_GET['data']);

// this shows how to access the data
if($data->email == 'asd@qwe.co.uk' && $data->password = '1234')
{
    $output['loggedin'] = '1';
}

header('Content-type: application/json');

echo json_encode($output);
于 2013-07-15T16:14:41.227 に答える