【发布时间】:2013-03-21 15:41:17
【问题描述】:
我目前正在通过一个真实的网站项目学习 PHP,并希望使用 Ajax 调用来更改网站的各个部分。
代码示例
我的项目.js
$(document).ready(function() {
$("#inventory").click(function() {
$.ajaxSetup({
url: "sectionhandler.php?section='inventory'",
type: "get",
dataType: "html"
});
$.ajax().done(function(html) {
alert(html); // This works!
$("#section").html(html); // This doesn't work.
$("#section").append(html); // This neither.
});
});
});
inventory.html
<table><tr><td>Hello world with AJAX!</td></tr></table>
sectionhandler.php
<?php echo file_get_contents( 'inventory.html' ); ?>
menu.html
<a id="inventory" href="">Inventory</a>
index.php
<div id="menu" class="content"><?php echo file_get_contents( 'menu.html' ); ?></div>
<div id="section" class="content"></div>
相关文章被发现、阅读和尝试
- XMLHttpRequest won't work in IE 7/8 but works in other browsers
- jQuery.ajax()
- jQuery.ajaxSetup()
- .append()
- jquery .html() vs .append()
- Can't append HTML code into one div by using jQuery
- Add Html to Div with effect jQuery
- Use append() to add text/html to an element with jQuery
还有更多...
结果
当我单击包含在menu.html 中并通过index.php 显示的库存链接时,jQuery 代码执行得很好。我从服务器获取结果,同时在alert() 中显示来自inventory.html 的正确内容。
但是,当我将innerHTML 设置为<div id="section" class="content"></div> 时,我似乎无法获得预期的结果。页面的背景似乎在闪烁,尽管按照 Ajax 定义不应该如此,并且我的 XMLHttpRequest.responseText 的内容永远不会显示。
当我双击 Inventory 链接时,我越接近让它工作,所以在页面背景的第一次“闪烁”之后,它显示了我部分的内容。
我尝试了多种方法,在我的<a> 标记上使用带有onclick 元素的经典Javascript,我尝试使用document.getElementById("section"),虽然获得了正确的元素,但我无法在页面上显示我的内容。
欢迎提出任何想法!
提前致谢! =)
【问题讨论】:
-
以下是警告内容:prntscr.com/ykc2n
-
当我将
<?php echo file_get_contents( 'inventory.html' ); ?>直接写入index.php文件中的div:#section 时,它如何工作,而在通过ajax 时不起作用?我错过了一些东西,我很困惑。 =) -
你可以试试
$("#section").load("sectionhandler.php?section=inventory");而不是ajax,看看是否有效? -
@Onimusha:这将是更好/更简单的方法。我马上试试这个! =)
-
@Onimusha:这也完美无缺,而且非常简单!我就喜欢!大声笑所有这些时间都花在了调查这个和那个解决方案上,有尽可能多的差异,太棒了!我一定会记住这一点的! =)如果您愿意,您可以将您的方法写为答案,以便我可以投票并帮助获得代表点。 =)
标签: php html jquery xmlhttprequest jquery-append