我知道這個問題已經回答了很多次,但由於對對象,數組,字符串和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