2011-12-18 50 views
0

我需要使用與數據數組的jqPlot圖表像AJAX裝載到jqPlot

[[2010-06-30 18:40:11, 18], [2010-06-30 18:42:17, 25]...] 

它與官方的例子的偉大工程「dateAxisRenderer插件」

,但現在我需要做ajax加載的圖表。在我看來,「AJAX JSON數據呈現器」方法不能將日期用作「x」數據源,只能從簡單的[y1,y2,y3]數組中取得「y」值。我怎麼能讓他從我的數組中取出兩個同心 - 日期爲「x」,數字爲「y」? JSON示例:

$(document).ready(function(){ 
var ajaxDataRenderer = function(url, plot, options) { 
var ret = null; 
$.ajax({ 
    async: false, 
    url: url, 
    dataType:"json", 
    success: function(data) { 
    ret = data; 
    }} 
); 
return ret; 
}; 

var jsonurl = "jsondata.php"; 

var plot2 = $.jqplot('chart2', jsonurl,{ 
    title: "AJAX JSON Data Renderer", 
    dataRenderer: ajaxDataRenderer, 
    dataRendererOptions: { 
    unusedOptionalUrl: jsonurl 
    } 
    }); 
}); 

謝謝。

+0

你可以張貼一些示例代碼? – PriorityMark 2011-12-19 20:54:17

回答

2

你的代碼中的基本問題是渲染器沒有返回從ajax請求收到的響應。成功函數調用返回後設置變量。

看看下面的代碼。執行

步驟:

  1. 呼叫在頁面載入plot功能
  2. 就請求成功Ajax請求
  3. 調用renderer響應數據
  4. 通話jqplot與參數形成響應數據。
  5. 圖形渲染

var ajaxJqPlot = { 
    settings : { 
     data_url : "jsondata.php", 
     element_id : "chart2" 
    }, 
    plot : function(settings){ 
     t = this; 
     $.extend(t.settings, settings); 
     $.ajax({ 
      async : false, 
      url : t.settings.data_url, 
      dataType :"json", 
      success : t.renderer 
     }); 
    }, 
    renderer : function(res){ 
     t = this; 
     $.jqplot(t.settings.element_id, res.data, res.opt); 
    } 
}; 

$(document).ready(function(){ 
    ajaxJqPlot.plot(); 
}); 
+0

非常感謝!爲什麼這不被標記爲正確答案? :) – 2014-06-03 09:23:37