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

时间:2015-01-06 15:33:44

标签: javascript php jquery ajax cordova

我正在通过Cordova构建一个移动应用程序,但我无法显示我正在使用的数组通过AJAX从数据库中获取数据。我已经让php工作了,我认为它是一个格式正确的数组,但它正在变形,并在某个地方变成了“对象,对象”。

我也不太确定实际将这些数据放入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。

1 个答案:

答案 0 :(得分:0)

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

我没有达到第二个警告,因为我认为JSON.parse(data)因数据已经成为对象而发出错误。