1

私はGoogleChartsAPIを使用して表グラフを描画しています。
私はajaxこのようにjqueryを使用して呼び出しを行っています-

$('#table_div').load('getAnalysis.aspx');

ここでは、の関数を<div id=table_div"></div>使用してデータを入力しています。次のHTMLテキストを返すようになりました -loadjquery
getAnalysis.aspx

<div id="iqr_table"></div>
<script type='text/javascript'>
    google.load('visualization', '1', { packages: ['table'] });
    google.setOnLoadCallback(iqr_drawTable);
    function iqr_drawTable() {
      var iqr_data = new google.visualization.DataTable();
      iqr_data.addColumn('string', 'Q #');          
      iqr_data.addColumn('string', 'My Answer');
      iqr_data.addColumn('string', 'Correct Answer');
      iqr_data.addRows([
    ['1', 'A', 'C', ],
    ['2', '', 'C,D', ],
    ['3', 'C', 'C', ],
    ['4', 'D', 'D', ],
    ['5', 'C,D', 'A,B', ],
   ]);

      var table = new google.visualization.Table(document.getElementById('iqr_table'));
      table.draw(iqr_data, { showRowNumber: true });
}
</script>

開発者ツールに組み込まれているgooglechromeを使用して、ajax呼び出しが正しく行われ、htmlテキストが正しく受信<script>され、受信したコンテンツのタグも評価されることを確認しました。

<script>しかし、タグの評価直後に問題が発生<body>し、ページから削除されて何も表示されません。
どこが間違っているのかわかりません。

PS:メインページに必要なすべてのスクリプトファイルを含めたので、それを指摘しないでください。

4

2 に答える 2

1

問題はスクリプトにあります。

<script type='text/javascript'>
    google.load('visualization', '1', {
        packages: ['table']
    });
    google.setOnLoadCallback(iqr_drawTable);

    var iqr_data = { }; // define it here.

    function iqr_drawTable() {
        /*var*/ iqr_data = new google.visualization.DataTable(); // iqr_data is defined here.
        iqr_data.addColumn('string', 'Q #');
        iqr_data.addColumn('string', 'My Answer');
        iqr_data.addColumn('string', 'Correct Answer');
        iqr_data.addRows([
            ['1', 'A', 'C', ],
            ['2', '', 'C,D', ],
            ['3', 'C', 'C', ],
            ['4', 'D', 'D', ],
            ['5', 'C,D', 'A,B', ], ]);

        var table = new google.visualization.Table(document.getElementById('iqr_table'));
        table.draw(iqr_data, {    // and isn't available here.
            showRowNumber: true
        });
    }
</script>

なぜページから削除する必要があるのか​​わかりませんが<body>...しかし、これは私が気付くことができた問題でした...

于 2012-05-19T16:45:15.487 に答える
0

それを理解した-GoogleAPIは最初に負荷を初期化すると言った。したがって、おそらくgoogle.load関数をAJAXフェッチスクリプトから除外します。

google.load('visualization', '1', {'packages': ['annotatedtimeline']}); 

$(document).ready(function(){               
// Get TIER1Tickets                 
$('#table_div').load('getAnalysis.aspx');

そして私が得たのgetAnalysis.aspxはこれです(グーグルがすでに初期化されていてパッケージがロードされていると仮定して)-

<div id="iqr_table"></div>
<script type='text/javascript'>    
  var iqr_data = new google.visualization.DataTable();
  iqr_data.addColumn('string', 'Q #');          
  iqr_data.addColumn('string', 'My Answer');
  iqr_data.addColumn('string', 'Correct Answer');
  iqr_data.addRows([
  ['1', 'A', 'C', ],
  ['2', '', 'C,D', ],
  ['3', 'C', 'C', ],
  ['4', 'D', 'D', ],
  ['5', 'C,D', 'A,B', ],   

  var table = new google.visualization.Table(document.getElementById('iqr_table'));
  table.draw(iqr_data, { showRowNumber: true });
}

于 2012-05-22T11:13:03.613 に答える