【发布时间】:2013-03-25 09:18:30
【问题描述】:
我正在构建一个带有静态页眉和页脚的基本网页。 在左侧,我有一个菜单。 当我按下菜单按钮时,会发出一个 ajax 请求,并在右侧 DIV 上更新我的文本。
menu01 - menu01.php 包含带有一些 Mysql 结果的 php 代码,这很好用。 我认为这很好用,因为它都是文本输出。
menu02 - Menu02.php 包含显示 RGraph 的 html 代码,一些文本在右侧 DIV 中显示正常,但图表不显示。 当我直接调用这个文件时,menu02.php 文件显示正常。
我发现,来自 php 文件的 RGraph 输出不是可用于更新页面右侧 DIV 的 xml 数据。 ajax 只怀疑接收一些文本,对吧? 所以我必须找到另一种方法来动态更新我的页面并在正确的 DIV 上显示不同类型的东西,而无需重新加载我的整个页面。 有了这些信息,我想我知道为什么它不起作用,但我不知道如何获得我正在寻找的结果。有谁知道在哪里寻找?
代码片段:
index.html:
<script src="./js/ajax.js"></script>
<section id="sidebar">
<nav>
<ul>
<li> <button onclick="goto_menu1()">Menu 1</button> </li>
<li> <button onclick="goto_menu2()">Menu 2</button> </li>
</ul>
</nav>
</section>
ajax.js:
function goto_menu1()
{
var xmlHttp = getXMLHttp();
xmlHttp.onreadystatechange = function()
{
if(xmlHttp.readyState == 4)
{
HandleResponse(xmlHttp.responseText);
}
}
xmlHttp.open("GET", "./menu01/menu01.php", true);
xmlHttp.send(null);
}
function goto_menu2()
{
var xmlHttp = getXMLHttp();
xmlHttp.onreadystatechange = function()
{
if(xmlHttp.readyState == 4)
{
HandleResponse(xmlHttp.responseText);
}
}
xmlHttp.open("GET", "./menu02/menu02.php", true);
xmlHttp.send(null);
}
【问题讨论】:
-
我想我找到了我丢失的部分。我应该使用 iframe 来加载页面的右侧,对吗?我已经让它工作了,但我不确定这是最好的解决方案
-
嗯,iframe 可以快速解决我的问题,但我认为这不是最佳选择。