2016-09-28 55 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); 
});