-2
 <script>
function getImgData(chartContainer) {
    var chartArea = chartContainer.getElementsByTagName('svg')[0].parentNode;
    var svg = chartArea.innerHTML;
    var doc = chartContainer.ownerDocument;
    var canvas = doc.createElement('canvas');
    canvas.setAttribute('width', chartArea.offsetWidth);
    canvas.setAttribute('height', chartArea.offsetHeight);
    canvas.setAttribute(
        'style',
        'position: absolute; ' +
        'top: ' + (-chartArea.offsetHeight * 2) + 'px;' +
        'left: ' + (-chartArea.offsetWidth * 2) + 'px;');
    doc.body.appendChild(canvas);

    canvg(canvas, svg);
    var imgData = canvas.toDataURL('image/png');
    canvas.parentNode.removeChild(canvas);
    return imgData;
}

function saveAsImg(chartContainer) {
    var imgData = getImgData(chartContainer);

    // Replacing the mime-type will force the browser to trigger a download
    // rather than displaying the image in the browser window.
    // window.location = imgData.replace('image/png', 'image/octet-stream');
}

function toImg(chartContainer) { 
    var doc = chartContainer.ownerDocument;
    var img = doc.createElement('img');
    img.src = getImgData(chartContainer);
    var test = getImgData(chartContainer);
    $.ajax({
        type: 'POST',
        url: "test.php",
        data: "test" + test,
        success: function (data) {
        console.log(test);
        }
    });
}

google.load('visualization', '1', {packages:['corechart', 'treemap', 'geochart']});
google.setOnLoadCallback(drawChart);

function drawChart() {
// Pie chart
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Task');
    data.addColumn('number', 'Hours per Day');
    data.addRows(5);
    data.setValue(0, 0, 'Work');
    data.setValue(0, 1, 11);
    data.setValue(1, 0, 'Eat');
    data.setValue(1, 1, 2);
    data.setValue(2, 0, 'Commute');
    data.setValue(2, 1, 2);
    data.setValue(3, 0, 'Watch TV');
    data.setValue(3, 1, 2);
    data.setValue(4, 0, 'Sleep');
    data.setValue(4, 1, 7);

    var chart = new google.visualization.PieChart(document.getElementById('pie_div'));
      chart.draw(data, {width: 450, height: 300, title: 'My Daily Activities'});
    toImg(document.getElementById('pie_div'));
}


</script>

このコードは私の「test.php」ファイルにあります。

次のようにajaxを使用して、変数をphpに渡そうとしています:

$.ajax({
            type: 'POST',
            url: "test.php",
            data: "test" + test,
            success: function (data) {
            console.log(test);
            }
        });

出力をダンプしようとすると、返されますnull(出力を同じファイルに渡してダンプしていますが、別のファイルに渡してそこにダンプしようとしました-同じ結果です):

var_dump($_POST['test']);

値が渡されないのはなぜですか?

4

2 に答える 2

3

dataオプションの形式が正しくありません。

変化する

data: "test" + test,

data: {test: test},
于 2013-05-19T15:30:42.150 に答える
0

さらに、本当に有効な JSON を取得するには、techfoobar の回答を拡張します。

変化する

data: "test" + test,

data: {"test":"test"}
于 2013-05-19T15:33:45.430 に答える