2012-04-02 54 views
1

我很難找到json編碼的方法。首先,我發送一組數據,例如,00:00-00:30從我的PHP到我的JavaScript。然而,當我使用報警功能調試,我會看到Json編碼無法使用flot

({'':"00:00-00:30", 1:"00:30-01:00", 2:"01:00-01:30", 3:"01:30-02:00", 4:"02:00-02:30", 5:"02:30-03:00", 6:"03:00-03:30", 7:"03:30-04:00", 8:"04:00-04:30", 9:"04:30-05:00"...})

我完全迷失了方向,在以爲什麼我不能只是給00:00-00:30此刻,其餘爲JSON編碼不帶引號。非常感謝!

我的PHP陣列碼:

$sql="SELECT * FROM $tbl_name6 WHERE Month = '$test'"; 
$result=mysqli_query($link, $sql); 
$row_cnt = mysqli_num_rows($result); 
while ($row = mysqli_fetch_array($result)) 
{ 
$times = $row['Time']; 
$demand = $row['Demand']; 

$arraytime[$countdown] = $times; 
$arraydata[$countdown] = $demand; 
$countdown = $countdown + 1; 

} 

我的javascript代碼:

$(function() { 
var graph = []; 
var power = <?php echo json_encode($arraydata);?>; 
var time = <?php echo json_encode($arraytime);?>; 
alert(time.toSource()); 
+0

可能使用字符串而不是數組。 – hakre 2012-04-02 16:07:11

+0

你的意思是改變我的$ arraydata []成一個字符串? – Eugene 2012-04-02 16:09:59

+0

我需要將我的數組傳遞給我的JavaScript,因爲我想在繪製之前在JavaScript中處理這些數據 – Eugene 2012-04-02 16:12:45

回答

1

你在開值分別爲 「00:00-00:30」 從你的數據庫。這是什麼格式存儲在數據庫中?我猜是一個字符串的varchar。你把它們從數據庫中拉出來,得到一個php字符串,當你對一個php字符串進行json_encode時,你會得到一個javascript字符串(因此用引號括起來)。不是很令人驚訝。

讓我們從結束遊戲開始。你想傳遞什麼值?是「00:00-00:30」,「00:30-01:00」等類似餅圖還是條形圖?它是您希望在xAxis上使用的標籤嗎?

「力量」是什麼樣的?這些數字值是什麼?

1

這並不完全清楚你想要什麼作爲最終結果,但我猜你想要一個可以傳遞給日期的數組。如果是這樣的情況下,嘗試初始化$倒計時爲0。它會改變這一點:

{"":"00:30-01:00","1":"01:00-01:30","2":"01:30-02:00"} 

這樣:

["00:30-01:00","01:00-01:30","01:30-02:00"] 

從那裏,你可以使用日期獲得實際的Date對象()函數以字符串作爲參數。