我使用getJSON和PHP登录。
现在所有它都检查用户和密码是否有效,但如果是,我想将更多信息传递给客户。
现在在服务器端我这样做:
if ($result->num_rows) {
echo '{"response":{"error": "1"}}';
} else {
echo '{"response":{"error": "0"}}';
}
在客户端,我有这个:
if (json.response.error == "1") {
data = "Welcome "+username;
alert(data);
} else {
// Login fail
data = "Wrong Username/Password";
alert(data);
}
所以基本上只是检查。
如何将更多信息从服务器传递到客户端?
更新:我已将代码更改为此但现在无效:
服务器:
if ($result->num_rows) {
//echo '{"response":{"error": "1"}}';
$data = array(
'response' => array(
'error' => 1,
),
'someData' => 'data';
);
print json_encode($data);
}
客户端:
$.getJSON("server.php", {username:username,password:password},function(data)
{
alert('hello');
var json = JSON.parse(data);
alert(json.responseCode);
});
答案 0 :(得分:2)
在服务器端,您可以创建一个包含所需数据的数组,然后使用json_encode()将其从服务器发送到客户端:
$data = array(
'response' => array(
'error' => 1,
),
'someData' => 'data',
...
);
print json_encode($data);
在客户端:
var json = JSON.parse(data);
alert(json.response.error);
希望它有所帮助!
答案 1 :(得分:1)
你必须使用jQuery.parseJSON(json)
,其中json是一个结构良好的json字符串。
来自文档:
它需要一个结构良好的JSON字符串并返回生成的JavaScript对象。
所以你必须首先将字符串解析为javascript对象。
var json = $.parseJSON(data); // data is the json string
if (json.response.error == "1") {
data = "Welcome "+username;
alert(data);
} else {
// Login fail
data = "Wrong Username/Password";
alert(data);
}