同じページのphpスクリプトにajax経由でフォームデータを送信しています。PHP はデータを処理し、結果を同じページに表示する必要があります。
私はajaxにこの構文を使用しています:
$.ajax
({
type: "POST",
url: "",
data: $("form").serialize(),
success: function(result)
{
updatechart();
console.log(result);
}
});
私は基本的に、フォームに入力されたデータに基づいて、PHPスクリプトによって処理された後に、グラフのいくつかの値を更新しようとしています。ページのソース全体を取得するconsole.log(result);
と、これを実行した後にコンソールで値が更新されますが、チャートは更新されません。ページを参照すると、値は同じままです。私は何をすべきか?
function updatechart() {
var json=<?php echo json_encode($GLOBALS['json']); ?>;
var direct=json['direct'];
var total=json['total'];
var referred=total-direct;
var aid=new Array();
var count=new Array();
for(var i=0;i<json['aid'].length;i++) {
aid[i]=json['aid'][i];
count[i]=json['count'][i];
}
var series = [{
name : "Referred",
data: [referred]
}, {
name: "Direct",
data: [direct]
}];
for(var i=0; i<aid.length;i++) {
series.push({
name: 'AID-'+[aid[i]],
data: [count[i]]
})
}
var options = {
chart: {
renderTo: 'container',
type: 'column'
},
title: {
text: 'User Source Chart'
},
xAxis: {
categories: ['Users']
},
yAxis: {
min: 0,
title: {
text: 'Total users'
}
},
tooltip: {
pointFormat: '<span style="color:{series.color}">{series.name}</span>: <b>{point.y}</b> ({point.percentage:.0f}%)<br/>',
shared: true
},
plotOptions: {
column: {
stacking: 'percent'
}
},
series: series
};
chart = new Highcharts.Chart(options);
}
これは私の updatechart() コードです。問題は、json 値が更新されないことです。