将数组从URL传递给javascript

时间:2014-12-26 04:25:29

标签: javascript php arrays

如何从GET请求传递数组:

[x, y], [x, y]...

进入此Google可视化API调用的第二部分。

var data = google.visualization.arrayToDataTable([
['Initial', 'Second'],
[8, 37], [4, 19.5], [11, 52], [4, 22], [3, 16.5], [6.5, 32.8], [14, 72]]);

目前我已预设了值,但我想从GET请求中传递它们。 我尝试过使用PHP,但是使用像passing arrays as url parameter这样的方法失败了,因为我不太确定如何正确设置x值。

以下是我用来生成图表的脚本:

  <script>
    google.setOnLoadCallback(drawChart);
    function drawChart() {
      var data = google.visualization.arrayToDataTable([
        ['Initial', 'Second'],
        [8, 37], [4, 19.5], [11, 52], [4, 22], [3, 16.5], [6.5, 32.8], [14, 72]]);

      var options = {
        width: 420,
        height: 420,
        legend: 'none',
        trendlines: { 0: {} },
        colors: ['#FE2E2E'],
        hAxis: {
            textPosition: 'none',
            gridlines: {
                color: "#CCCCCC"
            },
            baselineColor: '#CCCCCC'
        },
        vAxis: {
            textPosition: 'none',
            gridlines: {
                color: "#CCCCCC"
            },
            baselineColor: '#CCCCCC'
        },
        enableInteractivity: false
      };

      var chart = new google.visualization.ScatterChart(document.getElementById('chart_div'));
      chart.draw(data, options);
    }
  </script>

2 个答案:

答案 0 :(得分:1)

你可以将其字符串化并传递为url编码

var a = [[4,5], [6,7]];
var b = JSON.stringify(a); // "[[4,5], [6,7]]"
var x = encodeURIComponent(b); // "%5B%5B4%2C5%5D%2C%20%5B6%2C7%5D%5D"
var strArray = decodeURIComponent(x); // "[[4,5], [6,7]]"
var myArray = JSON.parse("[[4,5], [6,7]]"); // [[4,5], [6,7]]

答案 1 :(得分:1)

获得GET请求的回复后: -

 var myArrayData = JSON.parse(responseData);

现在您的数据格式为

[8, 37], [4, 19.5], [11, 52], [4, 22], [3, 16.5], [6.5, 32.8], [14, 72]

然后做:

myArrayData.unshift(['Initial', 'Second']);

现在你可以尝试:

var data = google.visualization.arrayToDataTable(myArrayData);