2016-03-25 16 views
0

我在JS的一些代碼,我在我的PHP腳本中使用。(基於chartjs)的JavaScript函數的多重使用

$licznik=0; 
    foreach ($all as $key => $row) { 
             $imiona[$licznik]=$row['imie']; 
             $nazwiska[$licznik]=$row['nazwisko']; 
             $tak[$licznik]=$row['tak']; 
             $nie[$licznik]=$row['nie']; 
             $licznik++; 
            } 


    $wynik.='<div> 
     <canvas id="'.$team.'"> 
     </canvas> 
     </div> 
     <br><hr>'; 

    $wynik.='<script> 

    var barChartData = { 
    labels : ["'.wypiszimiona($imiona,$nazwiska,$licznik).'], //radni 
    datasets : [ 
     { //głosy na nie 
     fillColor : "#BA0606", 
     strokeColor : "#FF0808", 
     highlightFill: "rgba(220,220,220,0.75)", 
     highlightStroke: "rgba(220,220,220,1)", 
     data : ['.wypisznie($nie,$licznik).'] 
     }, 
     { //głosy na tak 
     fillColor : "#23BA06", 
     strokeColor : "#30F70A", 
     highlightFill : "rgba(151,187,205,0.75)", 
     highlightStroke : "rgba(151,187,205,1)", 
     data : ['.wypisztak($tak,$licznik).'] 
     } 
    ] 
    }; 
    window.onload = function(){ 
    var ctx = document.getElementById("'.$team.'").getContext("2d"); 
    window.myBar = new Chart(ctx).StackedBar(barChartData, { 
     responsive : true 
    }); 

     }; 
    </script>'; 

這使得只剩下最後的畫布,另一種不渲染(但JS代碼我不知道什麼是錯的我不擅長JS:(

+0

請詳細說明您爲其編寫的代碼更有用。 –

回答

1

根據您提供的信息很少,我假設您使用不同的php變量複製和粘貼該js代碼。你這樣做,您要添加代碼,告訴客戶端每一次

window.onload = function(){ 
    var ctx = document.getElementById("'.$team.'").getContext("2d"); 
    window.myBar = new Chart(ctx).StackedBar(barChartData, { 
     responsive : true 
    }); 

,如果你做的比這一次更,要覆蓋在window.onload,只有最後重寫會發生,這意味着只有最後一個帆布將被吸引到。

+0

是的,使用插件從一些其他用戶開發chartjs。 – Gh0st

0

你需要關閉(並打開其中一些)帶有雙引號的JS字符串有幾個缺少它們的線條:

...labels : ["'.wypiszimiona($imiona,$nazwiska,$licznik).'"]... 
...data : ["'.wypisznie($nie,$licznik).'"]... 
...data : ["'.wypisztak($tak,$licznik).'"]... 

我可能錯過了一些。