Javascript 如何将数组对象返回给jquery$.ajax调用?
我试图将一个数组对象返回到我的jQueryAjax调用中,但它似乎以数组长度=1的字符串形式返回 PHP代码:Javascript 如何将数组对象返回给jquery$.ajax调用?,javascript,php,jquery,arrays,ajax,Javascript,Php,Jquery,Arrays,Ajax,我试图将一个数组对象返回到我的jQueryAjax调用中,但它似乎以数组长度=1的字符串形式返回 PHP代码: $results = mysqli_query($link, $sql); if ($results->num_rows > 0) { while ($row = $results->fetch_assoc()) { $array = array($row['eventDate'], $row['time'] ,['data' =>
$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调用:
功能趋势(数据){
}
在网络的预览窗口中,它显示一个数组:
在本例中,我无法获取3个对象的数组,而无法获取3的array.length
任何帮助都将不胜感激
您应该收集所有数据并将其作为一个json结果返回,并添加正确的http头(由@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";
}
您应该收集所有数据并将其作为一个json结果返回,并添加一个正确的http头(由@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";
}
我认为,如果您使用jquery,那么您必须使用JSON.parse(),这样您的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);
}
});
我认为,如果您使用jquery,那么您必须使用JSON.parse(),这样您的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);
}
});
这是一个由3个元素组成的数组,怎么了?不清楚。当我调试data.length时,它返回1。由于某种原因,我无法返回3的数组,因为它是一个关联数组。请查看开始时的
[[
您应该执行数据[0].length
看起来代码还打印出了3个单独的数组,而不是所有记录的集合。我想知道,这怎么不是JSON语法错误..data[0].length仍然显示1这是一个由3个元素组成的数组,有什么不对?不清楚。当我调试data.length时,它返回1,但由于某种原因,它无法返回3的数组,因为它是一个关联数组。请查看开始时的[
您应该执行数据[0].length
与所有记录的集合相比,代码似乎还打印出了3个单独的数组。我想知道,这怎么不是JSON语法错误..data[0]。length仍然显示1这很好,我还应该将else语句更改为与Javascript更兼容的语句,因此if(data.length>0){
我在原来的问题中添加了一个屏幕截图,但仍然得到长度=1@user5451365尝试放置标题('Content-Type:application/json')
在你的php文件的顶部。就是这样。非常感谢。我不知道标题。这很好,我还将把else语句更改为与Javascript更兼容的语句,因此如果(data.length>0){
我已经为原始问题添加了一个屏幕截图,仍然得到长度=1@user5451365尝试放置标题('Content-Type:application/json')
位于php文件的顶部。就是这样。非常感谢。我不知道标题。