长时间听众,第一次来电。对ajax并不擅长。据推测,我在做一些非常密集的事情:
尝试运行使用ajax响应中的html返回的google可视化,但即使我可以在firebug的xhr响应中看到代码,但从ajax页面加载时它也不会运行。
直接访问response2.php?var = X并且它工作正常,因此可能这不是代码本身输出的问题。
(我在ajax页面的标题和response2.php之间移动了jsapi和google.load(可视化),无论如何都没有成功)
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调用代码时,我无法获取表格。我可以看到结果,但可以看到可视化脚本。
非常感谢,
A
答案 0 :(得分:0)
你需要创建div来插入返回的html,使用.innerHTML将你的html插入到div中。
然后使用.appendChild将div附加到dom中的目标。
通过设置元素的innerHTML属性添加的脚本不会被执行。
function addScript(responseText) { var newdiv = document.createElement('div'); newdiv.innerHTML = responseText; document.getElementById('target').appendChild(newdiv); }