2013-05-19 31 views
-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'文件中。無法通過javascript varriable到php

我想一個varriable傳遞給PHP,用ajax像這樣:

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

當我試圖轉儲輸出,它返回我null(IM傳球和在同一文件中傾倒的輸出,還試圖將它傳遞到另一個文件,並有爲之傾倒 - 相同的結果):

var_dump($_POST['test']); 

爲什麼不是值傳遞?

+0

您的數據不是鍵值結構。 – Overv

回答

3

data選項的格式不正確。

變化

data: "test" + test, 

data: {test: test}, 
+0

仍然值爲空(在控制檯中它不爲空) – Edgar

0

此外,要真有有效的JSON我將延長techfoobar的回答是:

變化

data: "test" + test, 

data: {"test":"test"}