我试图用PHP回应一些JSON。我回忆的我的数组是静态的,其中一部分在数组中有多个记录。
代码
$return_output = array();
$return_output['error'] = false;
while (($serverLog_line=fgets($fopen_serverLog))!==false) {
$return_output[] = array(
"line" => $serverLog_line,
);
}
echo json_encode($return_output);
Jquery回应它
$.getJSON("https://oasis-hosting.net/panel/handlers/server_functions/get.serverLog.php?service_id=22",
function(result){
var json = result;
$.each(json, function(i, data) {
$("#gameTerminal_content").append("" + data.line + "");
})
});
现在,它确实回显了结果,但它会回显一个结果,表示“未定义”。屏幕截图:https://gyazo.com/47d2fbef749b94585c78a79b207fa65f
谢谢
答案 0 :(得分:3)
这是因为您将实际数据列表与error
元素混合在一起。
更改结构,使数据位于自己的数组中:
$return_output['error'] = false;
$return_output['data'] = array();
同时:
$return_output['data'] = array(
"line" => $serverLog_line,
);
在JavaScript中,只迭代数据列表而不是错误元素:
var json = result.data;
答案 1 :(得分:0)
它写在命令控制台上,它写道:
"无法阅读该物业' line' of null"
这意味着,$ return_output返回null。我不擅长php,但我认为你返回$ return_output但你修改了$ return_output []。
这些看起来像两个不同的变量。这应该是原因。