0

JavaScript を動的に作成するにはどうすればよいですか? 問題は、変数があり、次のスクリプトタグの値として解決したいのですが、方法が見つからない..例:

chartData = chartData + "['"+record["appname"]+", '"+record["CurrentConnections"]+"'], ";

chartdata は基本的に、次のコードがチャートを表示するための正しい形式の値である変数です。

<script>
    google.load("visualization", "1", {packages:["corechart"]});
    google.setOnLoadCallback(drawChart);
    function drawChart() {
        var data = google.visualization.arrayToDataTable([
          // !!!!NEED VALUE TO BE RESOLVED HERE!!!!
               ]);
            var options = {
            title: '<?php echo "$server"; ?>',
            is3D: true
        };
       var chart = new       google.visualization.PieChart(document.getElementById('chart_div'));
    chart.draw(data, options);
}
</script>

したがって、ここで !!!!NEED VALUE TO BE RESOLVED HERE!!!! の場所で コメントは私が欲しいので、スクリプトは次のように表示されます..

 var data = google.visualization.arrayToDataTable([
    ['xxx', '1'], ['yyy', '13'], ['zzz', '233']
  ]);

これにより、チャートが表示されます。これを静的に行うことはできますが、変数から取得したいと考えています。PHP を使用して echo すると、JavaScript が希望どおりに出力されますが、この特定のケースでは PHP を使用できません。

または、スクリプトタグ内でループして、このように想定させるにはどうすればよいですか。

これが理にかなっていることを願っています。

4

2 に答える 2

0

変数は QueryString パラメーターを介して渡します。

<script src="script.js?key=value"></script>

現在実行中のスクリプトのパラメータを取得する関数を使用できます

function getScriptParameter(key, default_) {
    //get the query string items for the current script
    var scripts = document.getElementsByTagName('script');
    var index = scripts.length - 1;
    var myScript = scripts[index];
        if (default_ == null) default_ = "";
            key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
    var qs = regex.exec(myScript.src);
        if (qs == null)
            return default_;
        else
            return qs[1];
}
于 2013-06-28T14:56:23.577 に答える