我试图将一个数组对象返回到我的Jquery ajax调用,但它似乎返回一个String,其长度为数组= 1
PHP代码:
$results = mysqli_query($link, $sql);
if ($results->num_rows > 0) {
while ($row = $results->fetch_assoc()) {
$array = array($row['eventDate'], $row['time'] ,['data' => $row['time']]) ;
echo json_encode($array) ;
}
} else {
echo "0 results";
}
开发人员工具中的响应显示:
["12_03_2015","0:00:00",{"data":"0:00:00"}]["12_03_2015","0:00:00",{"data":"0:00:00"}]["12_03_2015","0:00:00",{"data":"0:00:00"}]
我的Ajax电话:
功能趋势(数据){
$.ajax({
url: "trendData.php",
cache: true,
type: "POST",
data: {arr:data},
success: function (data) {
originalData=[];
originalData.push(data)
trender(data)
}
});
}
在网络的预览窗口中,它显示一个数组:
我无法得到一个数组,在这个例子中,有3个对象并得到array.length为3
非常感谢任何帮助。
答案 0 :(得分:3)
您应收集所有数据并将其作为一个json结果返回并添加正确的http-header(由@Flosculus建议),以便识别json格式:
$results = mysqli_query($link, $sql);
$data = array();
if ($results->num_rows > 0) {
while ($row = $results->fetch_assoc()) {
$data[] = array($row['eventDate'], $row['time'] ,['data' => $row['time']]) ;
}
header('Content-Type: application/json');
echo json_encode($data) ;
} else {
echo "0 results";
}
答案 1 :(得分:0)
我认为你必须使用 JSON.parse(),如果你使用jquery所以你的js脚本看起来像
$.ajax({
url: "trendData.php",
cache: true,
type: "POST",
data: {arr:data},
success: function (data) {
var data = JSON.parse(data);
//see length of array
console.log(data.length);
}
});