2012-12-06 57 views
1

我想從mysql數據庫生成一個圖形顯示註冊數據。數據格式似乎正確地出來,但數據沒有被繪製。請注意我正在使用CodeIgniter。從MySQL數據庫使用jQuery Flot繪製數據

PHP:

public function graph_registrations() 
    { 
     $send = array(); 

     $i = 1; 
     while($i <= 30){ 
      $startTime = mktime(0, 0, 0, date('m'), date('d')-$i, date('Y'));  
      $endTime = mktime(23, 59, 59, date('m'), date('d')-$i, date('Y')); 
      $data = $this->admin_model->total_users_date($startTime, $endTime); 
      $new = array(date("M j", $startTime), $data); 
      $send[] = $new; 
      $i++; 
     } 

     echo json_encode($send); 
    } 

JS:

var jsonData = $.ajax({ 
      url: default_url+"admin/graph_registrations", 
      dataType:"json", 
      async: false 
      }).responseText; 

    console.log(jsonData); 

    var graphData = [{ 
     // Visits 
     data: jsonData, 
     color: '#71c73e', 
     points: { radius: 4, fillColor: '#71c73e' } 
    } 
]; 

    // Lines 
$.plot($('#graph-lines'), graphData, { 
    series: { 
     points: { 
      show: true, 
      radius: 5 
     }, 
     lines: { 
      show: true 
     }, 
     shadowSize: 0 
    }, 
    grid: { 
     color: '#646464', 
     borderColor: 'transparent', 
     borderWidth: 20, 
     hoverable: true 
    }, 
    xaxis: { 
     tickColor: 'transparent', 
     tickDecimals: 2 
    }, 
    yaxis: { 
     tickSize: 1000 
    } 
}); 

一切正常,如果我手動硬編碼中的數據,而不是當我通過AJAX抓住它。

這是CONSOLE.LOG(jsonData)生產:

[["Dec 5",0],["Dec 4",0],["Dec 3",0],["Dec 2",0],["Dec 1",0],["Nov 30",0],["Nov 29",0],["Nov 28",0],["Nov 27",0],["Nov 26",0],["Nov 25",0],["Nov 24",0],["Nov 23",0],["Nov 22",0],["Nov 21",0],["Nov 20",0],["Nov 19",0],["Nov 18",0],["Nov 17",0],["Nov 16",0],["Nov 15",0],["Nov 14",0],["Nov 13",0],["Nov 12",0],["Nov 11",0],["Nov 10",0],["Nov 9",1],["Nov 8",0],["Nov 7",0],["Nov 6",0]] 

我試着這樣做沒有日期,只是一個普通的數字,但沒有奏效。

謝謝

回答

0

對我來說,你試圖讓他們之前繪製的數據。我可以看到你正在使用「async:false」來等待數據被加載,我寧願使用默認的「true」選項,並將繪圖函數放置在$ .ajax的「成功」回調中。