2016-09-28 56 views
0

我有一個js文件包含以下代碼:調用JS功能HTML

var BlankonDashboard = function() { 

return { 

    // ========================================================================= 
    // CONSTRUCTOR APP 
    // ========================================================================= 
    init: function() { 
     BlankonDashboard.visitorChart(); 
    }, 

    // ========================================================================= 
    // VISITOR CHART & SERVER STATUS 
    // ========================================================================= 
    visitorChart: function() { 
     if($('#visitor-chart').length){ 
      $.plot("#visitor-chart", [{ 
       label: "Vente Année N", 
       color: "rgba(0, 177, 225, 0.35)", 
       data: [ 
        ["Jan", 420], 
        ["Fév", 532], 
        ["Mar", 367], 
        ["Avr", 245], 
        ["Mai", 674], 
        ["Jui", 897], 
        ["Juil", 745] 
       ] 
      }, { 
       label: "Vente Année N-1", 
       color: "rgba(233, 87, 63, 0.36)", 
       data: [ 
        ["Jan", 362], 
        ["Fév", 452], 
        ["Mar", 653], 
        ["Avr", 756], 
        ["Mai", 670], 
        ["Jui", 352], 
        ["Juil", 243] 
       ] 
      }], { 
       series: { 
        lines: { show: false }, 
        splines: { 
         show: true, 
         tension: 0.4, 
         lineWidth: 2, 
         fill: 0.5 
        }, 
        points: { 
         show: true, 
         radius: 4 
        } 
       }, 
       grid: { 
        borderColor: "transparent", 
        borderWidth: 0, 
        hoverable: true, 
        backgroundColor: "transparent" 
       }, 
       tooltip: true, 
       tooltipOpts: { content: "%x : %y" + " People" }, 
       xaxis: { 
        tickColor: "transparent", 
        mode: "categories" 
       }, 
       yaxis: { tickColor: "transparent" }, 
       shadowSize: 0 
      }); 
     } 
    }, 
}; 

}(); 

// Call main app init 
BlankonDashboard.init(); 

visitorChart功能來繪製靜態數據的圖表,但我想這樣做動態使用PHP,我不知道如果我可以將php數據遷移到js文件(file.js),但是如果我可以將php數據遷移到這個功能(visitorChart),那我就會走了。

+0

唉唉....你可以做一個AJAX調用JSON格式獲取數據後初始化圖表你得到的數據。看看這裏https://www.sitepoint.com/ajaxjquery-getjson-simple-example/ –

+1

從PHP中吐出JavaScript或通過Ajax和JSON加載它。 – epascarello

+0

但問題是我怎麼能調用這個函數,你可以在這個js文件中看到所有函數都變成了'var BlankonDashboard = function(){...}' –

回答

0

您需要創建一個Ajax請求如下:

  1. 在PHP建立一個與信息的JSON你需要接受的 視圖
  2. 創建Ajax調用(獲取)指向的URL即構建 JSON
  3. 注入JSON對象插入到這樣的代碼 $.plot("#visitor-chart", [ data ]);

而且應該是這樣:)

當然,您需要確保JSON格式與圖表所期望的相同。

;)

+1

也許*「web service」*不是正確的術語。 – DontVoteMeDown

+0

@DontVoteMeDown約定。這使得它看起來過於複雜,最終可能是錯誤的團隊。 – Carcigenicate

+0

你會怎麼做@Carcigenicate?過於複雜? hahaha – mkmnstr

0

有兩種方法可以做到這一點。第一種方式運行速度稍快,但第二種方式可以一次又一次地在js中更新數據而無需重新加載頁面。

方法1: 某處的PHP文件,其中這個js是進口使用下面的代碼開始:

<script> 
    var data = <?php echo [your serialized data here] ?> 
</script> 

請注意,如果您導入這個js在多個文件中,你可以創建一個單獨的PHP文件並將其包含在各處。

方式2:

創建一個PHP,它將JSON序列化到您的數據。還要讓用戶在標題中提到文件類型爲json。那就是:header('Content-Type: application/json');

然後在你的js文件,無論你需要的數據,只寫

$.getJSON("yourfile.php", {parameter1: value1, parmeter2: value2}, function(data){ 
    console.log(data); 
});