2014-02-25 61 views
0

即時通訊嘗試做一些圖表,使用jQuery jChartFX。json從php到jquery

當伊夫使用PHP它的偉大工程,怎麼過ID喜歡它從另一個文件中grapped,對於我嘗試使用一些JSON ..

陣列看起來像這樣做出的陣列在同一個文件(print_f($ chartArray))

Array ( 
    [0] => Array ( 
     [Procent rigtige] => 100 
     [Antal rigtige] => 4 
     [Antal mulige] => 4 
     [Date] => Januar-1970) 
    [1] => Array ( 
     [Procent rigtige] => 100 
     [Antal rigtige] => 4 
     [Antal mulige] => 4 
     [Date] => Februar-2014) 
) 

當我嘗試的解碼的JSON它看起來如何過像

Array ( 
    [0] => stdClass Object ( 
     [Procent rigtige] => 100 
     [Antal rigtige] => 4 
     [Antal mulige] => 4 
     [Date] => Januar-1970) 
    [1] => stdClass Object ( 
     [Procent rigtige] => 100 
     [Antal rigtige] => 4 
     [Antal mulige] => 4 
     [Date] => Februar-2014) 
) 

使用jQuery的任何方式,我可以從我的PHP牛逼解析JSON在jQuery中,仍然保持它作爲數組而不是對象?

或者有什麼方法可以做到這一點更聰明?

我使用

echo json_encode($chartArray); 

我getUserStats.php ,並讓他們使用即時通訊 >

$.ajax({ 
     type: "GET", 
     url: "getUserStats.php", data: {'type': 'monthly'}, 
     success: function(data) { 
       chart1.setDataSource(JSON.parse(data)) 
     } 
}); 

回答

1

爲了解析jQuery的一個JSON,你可以使用jQuery.parseJSON()

在PHP中,使用json_encode()編碼陣列。

在你的test.php中,添加頭('Content-Type:application/json');

測試。PHP

// header('Content-Type: application/json'); //change 
$chartArray = array( 
"0" => array( 
    "Procent rigtige" => 100, 
    "Antal rigtige" => 4, 
    "Antal mulige" => 4, 
    "Date" => "January-1970" 
    ), 
"1" => array ( 
    "Procent rigtige" => 100, 
    "Antal rigtige" => 4, 
    "Antal mulige" => 4, 
    "Date" => "February-2014") 
); 

echo json_encode($chartArray); 

AJAX

$.ajax({ 
    type: "GET", 
    url: "test.php", 
    data: {'type': 'monthly'}, 
// dataType: "json",  // change 
    success: function(data) { 
    chart1.setDataSource(data); //change // output 100 
    } 
}); 
+0

我改變了我的答案。現在請檢查一下。 –

+0

@ user2979049,您也可以編輯自己的問題。 – davidkonrad

+0

請再次查看我的答案並修改您的腳本。如果你再次編輯你自己的問題並添加chart1.setDataSource(<?php echo json_encode($ chartArray);?>)問題會更好。 –

2

這是不相關的jQuery的或其他任何你」重新做,它看起來像一個不正確的使用json_decode

您可能使用$arr = json_decode($json_string)來解碼JSON,但是您想要的是$arr = json_decode($json_string, true)

json_decode,assoc的第二個參數控制返回應該是一個關聯數組還是您在表示中獲得的對象。見json_decode documentation

這是json_decode to array

+0

聽起來是正確的,即時解析數據爲即時更新我的​​問題到另一個文件使用jquery,任何方式,我可以做同樣的? – Mathias

+0

我沒有明白你的意思,「用jQuery解析數據到另一個文件」。從更新的問題,如果你的'test.php'文件輸出一個JSON,$ .ajax(...,function(data){ - 這裏使用數據,應該是你的JSON解析成一個JavaScript對象 - }) 。如果某些內容不起作用,您可能需要使用Chrome開發工具或Firebug來查看請求是否正確發送,並且您的'test.php'返回您想要的內容。 –

0

可能重複這可能幫助:

$json = json_encode($yourArray); 
+0

我準備在PHP上使用它,對不起,只是忘了把它放在代碼中,但現在編輯了它 – Mathias

0

如果你有一個在你的根命名爲make_json.php文件,你可以用jQuery做到這一點:在你的make_json.php文件

var json = $.getJSON('/make_json.php'); 

然後你只需要回顯一些json。使用json_encode

// ... assuming your array is called $array 
echo json_encode($array); 

你不需要jQuery的不做到這一點,但它肯定使得它更簡單。