在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]).']';
?>
Php是测试,因为我想检查用户是否传递了正确的详细信息,然后我将返回'loggedin' => 1
左右的json对象,如果不是0
我还试图通过$ret=$_GET['profile'];
访问此对象,但它没有帮助。
我的问题是:如何传递json对象并在php中访问它。
答案 0 :(得分: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);