我有以下PHP:
<?php
$get_messages = mysqli_query($mysqli, "SELECT * FROM messages");
$messages = array();
while ( $row = mysqli_fetch_array($get_messages)){
$messages[] = array( 'name' => $row['name'], 'message' => $row['message']);
}
$json = json_encode($messages);
echo $json;
?>
成功回应以下JSON:
[{"name":"Ernest","message":"hello"},{"name":"Ernest","message":"hello"},{"name":"john","message":"yes"},{"name":"Diana","message":"I know\r\n"},{"name":"fgafg","message":"fgehfegfvg"},{"name":"fgafg","message":"fgehfegfvg"},{"name":"fgafg","message":"fgehfegfvg"},{"name":"gsfvgx","message":"fbhfxvcz"},{"name":"argttrhjyrbsgdzdc","message":"ahjtgfrdcvdfsevb"}]
然后我有了这个JS:
$(document).ready(function(){
$.ajax({
url: 'retrieve.php',
dataType: 'json',
success: function (response) {
alert(response[3]);
}
});
});
警告未定义。
这是什么问题?我们将非常感谢您的帮助。
注意:如果我将提醒更改为alert(response[3].name);
或alert(response[3][name]);
,则提醒窗口甚至不会显示给提示
答案 0 :(得分:0)
response
是一系列包含name
和message
属性的项目。所以你基本上应该遍历项目并访问它。
您需要确保您的ajax调用正在点击success
处理程序。可以添加error
处理程序来验证它。
success: function (response) {
$.each(response,function(a,b){
alert(b.name);
alert(b.message);
});
},
error : function(a,b,c){
alert("error");
alert(c);
}
Here是迭代数组的工作示例。
此外,如果您的页面中有任何其他脚本错误,它将无法正常工作。因此,请确保您没有任何其他脚本错误。您可以通过检查浏览器控制台来验证它。
答案 1 :(得分:0)
尝试:
$.ajax({
type: "POST",
data: {
message: JSON.stringify(message)
},
url: "retrieve.php",
success: function(message) {
alert(message);
}
});