将数组从 URL 传递到 javascript

Pass array from URL to javascript

本文关键字:javascript URL 数组      更新时间:2023-09-26

如何从 GET 请求中传递数组,如下所示:

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

进入此谷歌可视化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,但使用这样的方法将数组作为 url 参数传递失败,因为我不太确定如何正确设置 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>

一旦你得到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);

你可以将其字符串化并作为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]]