我正在通过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。
答案 0 :(得分:0)
由于您在查询中指定了dataType: 'json'
,因此返回的响应已经被解析为JSON,因此您不需要使用JSON.parse
。
我没有达到第二个警告,因为我认为JSON.parse(data)
因数据已经成为对象而发出错误。