0

同じページの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 値が更新されないことです。

4

2 に答える 2

3

resultasパラメータをに渡しますupdatechart()

$.ajax
({
    type: "POST",
    url: "",
    data: $("form").serialize(),
    success: function(result)
    {
        updatechart(result);      
    }
}); 

次に、 parameter を介して結果にアクセスします

function updatechart(result) {
//.......
//.......
console.log(result);
}

このようなことを試していることを願っています。

于 2013-07-08T14:48:26.127 に答える