使用 Javascript 在 HTML 中显示来自 AJAX 的多行数组

Displaying multi-row array from AJAX in HTML with Javascript

我正在通过 Cordova 构建一个移动应用程序,但在显示我用来通过 AJAX 从数据库获取数据的数组时遇到问题。我已经让 php 努力生成我认为格式正确的数组,但它正在被破坏并变成 "object, object" 沿线的某个地方。

我也不太确定是否真的将该数据放入 html,因为这是我第一次在 javascript 中这样做(通常只使用 php),但是这不如正确地传输该死的数据重要。

HTML/Javascript:

<body onload="getList();">
<div class="app">

<div id="output">If you can see this text something has gone wrong. </div>

<script language="javascript" type="text/javascript">
function getList(){

    $.ajax({
        url: "***.php",
        data: "",
        dataType: 'json',
        success: function(data)
        {
            alert("unparsed data"+data);
            data = JSON.parse(data);
            alert("parsed data"+data);

            for (var x = 0; x < data.length; x++) {
                content = data[x].PID;
                content += "<br>";
                content += data[x].name;
                content += "<br>";
                $("#output").append(content);
            }
        },
        error: function(jqXHR, textStatus)
        {
            alert( "Request failed: " + textStatus );
        }
    });
};
</script>
</div>

生成数组的php文件是

$results_array = array();
$results = mysqli_query($db_server, $query); 

while($row = mysqli_fetch_row($results)){
$table_data[]= array("PID"=>$row[1],"name"=>$row[3]);
}
echo json_encode($table_data);

在浏览器中运行时生成

[{"PID":"11","name":"testname"},{"PID":"11","name":"Dev2test"}]

但是当我运行实际的应用程序时,ajax 成功函数中的第一个警报返回

"unparsed data[object Object],[object Object]"

但是第二个警报没有触发,html 也没有附加任何内容。

因为您在查询中指定了 dataType: 'json',所以返回的响应已经被解析为 JSON,因此您不需要使用 JSON.parse.

它没有像我想象的那样到达第二个警报JSON.parse(data)由于数据已经是一个对象而发出错误。