javascript - 使用 Ajax 将数组从 PHP 传递到 javascript 获取错误的数组长度

标签 javascript php jquery ajax

我面临的问题是,当我使用 Ajax 将数组从 PHP 文件传递​​到另一个文件 javascript 时,我得到正确的输入,但数组的长度是错误的。我不知道我做错了什么。这是我的两个文件的一些代码。

Firstfile.php:

function check()
{ 

xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange = function()
{
   if(xmlhttp.readyState==4 && xmlhttp.status==200)
   { 
        graphData=xmlhttp.responseText;

        alert(graphData); 
        // getting alert [["01_Mar_2016",38430],["02_Mar_2016",97183],["03_Mar_2016",107122]]
       alert(graphData.length);
      //getting alert 68 but it should be 3 
   }
   else if(xmlhttp.status==404)
   {
        graphData="File not found";
   }
 }
 xmlhttp.open("GET","SeocndFile.php",true);
 xmlhttp.send();
}

SecondFile.php

while($result = mysql_fetch_assoc($qryResult))
{  
   $data[] = array((string)$result['mimiDate'], (int)$result['sumMimi']);
}

print json_encode($data);
//print like this[["01_Mar_2016",38430],["02_Mar_2016",97183],["03_Mar_2016",107122]]
//which is correct.

最佳答案

responseText 是一个字符串。您需要使用 JSON.parse()

将其转换为数组
var graphData=JSON.parse(xmlhttp.responseText);

为了安全起见,您应该将其包装在 try/catch block 中,或者如果您使用的是 jQuery,则转换为使用 $.getJSON() 并添加错误处理程序

$.getJSON('SeocndFile.php')
   .done(graphData){
     alert(graphData.length);
   })
   .fail(function(err){
      console.log(err);
      alert('Ooops...something went wrong');
   });

关于javascript - 使用 Ajax 将数组从 PHP 传递到 javascript 获取错误的数组长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35817486/

相关文章:

javascript - 检查 ascii 纯文本

php - Mysql插入时出现重复条目​​错误

javascript - 我应该对类型 'range' 的输入使用哪种事件类型?

javascript - Node.js - 如何在 EJS View 中使用我的局部变量

javascript - 为行 knockout 创建标题

javascript - 调度键盘事件在 JavaScript 中不起作用

PHP 文件从客户端通过服务器流式传输到客户端

php - 产品网格中的自定义 SQL

javascript - 如何使用SAP OpenUI5在前端显示表格?

jquery - 如何将 jQuery 的 .hover() 与一堆 div 一起使用