我知道这个问题已经回答了很多次,但由于对对象,数组,字符串和JSON的混淆,我仍然遇到了麻烦。
试图通过使用Highcharts实现图表我做了一个PHP从数据库中提取数据。简化,让我们说,这些只是一些值对(即一天,访问)。
我想建立一个数组发送给JS。 我这样做是:Javascript/PHP恢复阵列阵列
while ($row = mysql_fetch_array($result)) {
$dat = substr($row['data'],8,2); //strip to day
$pag = $row['pagina'];
$data[] = "[".$dat.",".$pag."]";
}
$finalData = join($data, ',');
//echo json_encode($finalData); // I get [09,20],[12,15],[12,11],[12,18]
echo "[".$finalData."]"; //I get [[09,20],[12,15],[12,11],[12,18]]
正如你看到的,我试过两种不同的方法(和一些变化有/无json_encode)。
在客户端,我声明:var donwloaded = [[]];
(数组的数组),其填充在这种方式:
....
var response = xmlhttp.responseText;
// donwloaded = JSON.parse(response);
donwloaded = response;
我再次以两种方式尝试。
以所有可能的组合,在'donwloaded'结果作为字符串结束(根据Mozilla调试器),并且图表未填充。
耐人寻味的是,如果JS我声明这一点:
var testValues = [ [1,10],[2,20],[3,30],[4,40] ];
出现类似于我从PHP获取,Mozilla的说,这4个数组的数组,并Highchart正确显示。
我确信我没有犯过错误,但经过2天的测试后,我更加困惑。
构建一个正常的PHP数组(多维),然后在结果中应用'json_encode'。将'$ data [] =“[”。$ dat。“,”。$ pag。“]”;'用'$ data [] = [$ dat,$ pag];'替换为开头。 –
请勿使用mysql_ *函数。请看看:http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php更多信息 –
你在找什么? – rahul