長年のリスナー、初めての発信者。ajax はあまり得意ではありません。おそらく私はここで非常に密な何かをやっています:
ajax 応答から html で返される Google ビジュアライゼーションを実行しようとしていますが、firebug の xhr 応答にコードが表示されていても、ajax ページからロードすると実行されません。
response2.php?var=X に直接アクセスすると問題なく動作するので、出力されるコード自体には問題ないと思われます。
(jsapi と google.load(visualization) を ajax ページのヘッダーと response2.php の間に移動しましたが、いずれにしても成功しませんでした)
ajax 呼び出し
$.ajaxSetup ({
cache: false
});
$.ajax ({
type: "GET",
url: "return2.php",
data: "council=Leeds City Council",
dataType: "html",
success: function (responseText) {
document.getElementById('result').innerHTML = responseText;
}
});
return2.php
<?php
$docKey = "0Aqk6sC3LBlfjdHUxRDIycjlSM3NvX0JCWnhxUjRUbFE";
$docQuery = $_GET['council'];
?>
<script type="text/javascript">
function drawVisualization() {
google.visualization.drawChart({
"containerId": "councilViz",
"dataSourceUrl": "http://spreadsheets.google.com/a/google.com/tq?key=<?php echo $docKey; ?>",
"query":"SELECT A,B,C WHERE A CONTAINS '<?php echo $docQuery; ?>'",
"chartType": "Table",
"options": {
"width": 560,
"height" : 200
}
});
}
google.setOnLoadCallback(drawVisualization);
</script>
<div id="councilViz">
<?php echo $docQuery; ?>
</div>
response2.php は GET 変数を取得し、Google スプレッドシート API クエリを実行して、次のコードを返します。
ajax レスポンス
<script type="text/javascript">
function drawVisualization() {
google.visualization.drawChart({
"containerId": "councilViz",
"dataSourceUrl": "http://spreadsheets.google.com/a/google.com/tq?key=0Aqk6sC3LBlfjdHUxRDIycjlSM3NvX0JCWnhxUjRUbFE",
"query":"SELECT A,B,C WHERE A CONTAINS 'Leeds City Council'",
"chartType": "Table",
"options": {
"width": 560,
"height" : 200
}
});
}
google.setOnLoadCallback(drawVisualization);
</script>
<div id="councilViz">
Leeds City Council</div>
コードがajaxによって呼び出されたときにテーブルを描画できません。結果はわかりますが、視覚化スクリプトからは何もありません。
どうもありがとう、
あ