私chart.js
チャート内のデータを交換しようとしているときに、私はトラブルを抱えています。今ではデータchart.jsを交換して、チャートをリロード[PHP/JS/AJAX]
は、それは私のチャートが設定されている方法は次のとおりです。
<script>
var optionsBar = {
responsive: true
};
var dataBar = {
labels: [<?=$mesReferencia?>],
datasets: [
{
label: "CPF's Enviados",
backgroundColor: "rgba(0,51,90,0.8)",
borderColor: "rgba(0,51,90,0.9)",
borderWidth: 2,
hoverBackgroundColor: "rgba(0,51,90,0.9)",
hoverBorderColor: "rgba(0,51,90,1)",
data: [<?=$cpfsEnviados?>]
},
{
label: "Propostas Finalizadas",
backgroundColor: "rgba(0,130,229,0.8)",
borderColor: "rgba(0,130,229,0.9)",
borderWidth: 2,
hoverBackgroundColor: "rgba(0,130,229,0.9)",
hoverBorderColor: "rgba(0,130,229,1)",
data: [<?=$propostasFinalizadas?>]
},
{
label: "Propostas Aprovadas",
backgroundColor: "rgba(43,139,74,0.8)",
borderColor: "rgba(43,139,74,0.9)",
borderWidth: 2,
hoverBackgroundColor: "rgba(43,139,74,0.9)",
hoverBorderColor: "rgba(43,139,74,1)",
data: [<?=$propostasAprovadas?>]
}
]
};
var optionsLine = {
responsive: true
};
var dataLine = {
labels: [<?=$mesReferencia?>],
datasets: [
{
label: "Finalizadas",
fill: false,
backgroundColor: "rgba(255,108,0,0.7)",
borderColor: "rgba(255,108,0,1)",
borderWidth: 4,
data: [<?=$propostasFinalizadas?>]
},
{
label: "Aprovadas",
fill: false,
backgroundColor: "rgba(255,246,0,0.6)",
borderColor: "rgba(255,246,0,1)",
borderWidth: 4,
data: [<?=$propostasAprovadas?>]
}
]
};
//======================= FUNÇÃO GERA GRÁFICOS =====================================================================
function run(){
var ctx = document.getElementById("graficoBarra").getContext("2d");
var BarChart2 = new Chart(ctx, {
type: 'bar',
data: dataBar,
options: optionsBar
});
var ctx2 = document.getElementById("graficoLinha").getContext("2d");
var LineChart = new Chart(ctx2, {
type: 'line',
data: dataLine,
options: optionsLine
});
}
window.onload = run;
run();
</script>
はチャートに使用するデータは、
PHP
VARSからのものであることを参照してください。 (これらはデフォルトで私のチャートを供給している値です)。
その後、私は私のDB
のドロップダウンフィルタデータの配列を有し、かつdata
というJavaScriptの配列オブジェクトを返す:
success: function(data){
console.log(data);
$("#filtro-rede").text(data[0]['rede']);
$("#filtro-loja").text(data[0]['loja']);
$("#filtro-mes").text(data[0]['mesReferencia']);
$('#cpfsEnviados').text(data[0]['cpfsEnviados']);
$("#finalizadas").text(data[0]['propostasFinalizadas']);
$("#aprovadas").text(data[0]['propostasAprovadas']);
$("#indiceAprovacao").text(data[0]['indiceAprovacao']+'%');
$("#primeirasCompras").text(data[0]['primeirasCompras']);
$("#segurosQnt").text(data[0]['seguros']);
mascararFiltros();
$(".mask-loading").fadeToggle(500);
}
は私のコードでsomeplacesは、この配列に返されたデータが供給されることを参照してください。
すべてはうまくいきましたが、私の唯一の問題は、data[0]['example']
という配列のデフォルトのPHP
の値を置き換え、ページを更新せずにグラフを再読み込みすることです。任意のアイデア/提案?ありがとう!
ページロード時に表示されるデータの初期セットに関連する問題は何かを明確にすることができますか?さらに、あなたが言うところでは、 'data [0] ['example']'は 'cpfsEnviados'、' propostasFinalizadas'、 'propostasAprovadas'のキーを含んでいるはずです。そうですか? () '、[実行'の現在のコンテンツは、() 'AJAXの成功コールバックに移動されます実行'でそれを置く: はたぶん、あなただけのページのロードのAJAX要求を発射する必要があります。それは理にかなっていますか? – Benito
よく@Benito、はい、ページが読み込まれたときにデフォルトのデータを表示したいので、問題は初期セットに関連しています。 「例」はあなたが言ったキーのどれかであることができます。最後の部分は私のために十分ではなかった。 – jvbarsou
「$ mesReferencia」、「$ cpfsEnviados」、「$ propostasFinalizadas」、および「$ propostasAprovadas」の変数には、どのような種類のデータがあるのかを理解するのに役立つもう1つのことはありますか?整数、文字列、配列? – Benito