Javascript 不会访问 json 对象
Javascript will not access json object
当我运行以下javascript/php时,在提醒json对象的"userid"属性时,我总是得到"未定义"。但是,如果我字符串化 json 对象,它会返回"[{'userid':'1'}],这是正确的值。
如果我尝试访问 json 对象的正确名称,为什么会出现未定义?
这是我用来访问对象的 ajax:
$.ajax({
type: 'POST',
url: 'WebPHP/check_login.php',
contentType: "application/json; charset=utf-8",
data: finalObject,
async: false,
dataType: 'json',
success: function(data) {
if (data["result"] === false) {
alert("Invalid Email or Password");
} else {
var userID = data["result"];
alert(userID["userid"]);
var url = "AMessage.html";
alert(JSON.stringify(data["result"]));
}
}
});
以及连接到数据库的 php:
$json = file_get_contents('php://input');
$jsondata = json_decode($json);
$email = $jsondata - > email;
$password = $jsondata - > password;
$sql1 = " SELECT user_id as userid
FROM users
WHERE email = '$email'
AND password = '$password';
";
$result = mysqli_query($Thesisdb, $sql1) or die(mysqli_error($Thesisdb));
$rows = $result - > num_rows;
while ($row = $result - > fetch_assoc()) {
$response[] = $row;
}
$post_data = array();
if ($rows == 1) {
$post_data = array('result' => $response);
} else {
$post_data = array('result' => false);
}
echo json_encode($post_data);
mysqli_close($Thesisdb);
您无法访问 userid
属性,因为您的userID
变量包含一个数组 - 这就是 json 响应中[]
括号的含义:[{'userid':'1'}]
.尝试以这种方式访问它:alert(userID[0]["userid"]);
。
更好的是,不要返回数组,因为无论如何您都在检查该$rows == 1
。
是的,正如 #Jack 所说,您无法访问userid
属性,您的 json 响应: [{'userid':'1'}]
是数组形式,所以你需要使用语法:alert(userId[0].userid)
相关文章:
- jQuery匹配JSON对象的部分文本
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 如何为json对象中的段发送array[]
- 将JSON对象传递给angular指令
- 更改JSON对象的结构
- 访问JSON对象内部的数组元素
- 在ejs-partial中对JSON对象进行迭代
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 访问嵌套JSON对象的键,其中键是动态的
- json对象中缺少对象循环
- 发送json对象或使用express路由呈现视图
- 在play2框架中向json对象添加下拉列表项
- 元素名称上带有短划线 (-) 字符的 Json 对象
- autocomplete不接受源的json对象
- 如何在javascript中创建动态json对象
- 在使用客户端脚本时拾取JSON对象
- 如何通过json对象数组为嵌套对象赋值
- 构造JSON对象