2013-05-19 2 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".Cant pass javascript varriable to 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

Тем не менее значение равно null (в консоли оно не равно null) – Edgar

0

Кроме того, чтобы быть действительно правильный JSON я бы расширить ответ techfoobar в:

Изменить

data: "test" + test, 

для

data: {"test":"test"}