我正在使用jQuery来劫持指向php文件的链接。这个php文件大多是html,但调用两个php函数,每个函数使用for循环输出html。我遇到的问题是ajax调用错误地嵌套了php for循环生成的html。
直接将php文件包含在页面上工作正常,但是当试图通过ajax抓取它时,每个顺序传递循环的html内容都插入到之前生成的html中。例如:
<div>Content1</div>
<div>Content2</div>
<div>Content3</div>
变为:
<div>Content1<div>Content2<div>Content3</div></div></div>
这是php文件的相关代码:
<div class="publishedPosts">
<h3>Published</h3>
<?php displayPublishedBlogPosts(); ?>
</div>
<div class="verticalDivider"></div>
<div class="draftPosts">
<h3>Saved Drafts</h3>
<?php displayBlogPostDrafts(); ?>
</div>
这是jQuery代码:
function adminPanelTabs() {
$('#adminPanelTabs ul li a').click(function(e) {
$('#adminPanelTabs ul li a.current').removeClass('current');
$(this).addClass('current');
$('#adminPanelContent').load($(this).attr('href'));
e.preventDefault();
});
}
非常感谢有关如何解决此问题的任何意见或建议。
答案 0 :(得分:1)
去图 - 花几个小时研究如何解决这个问题,作为最后的手段发布在这里,然后我发现问题是30分钟后的问题。
对于记录,问题出在被调用的php函数中。它们包括将结束div标记包含在if语句中的部分。
if语句只是检查用户是否已登录,即使这是 true 显然以这种方式进行ajax调用失败了这样的if语句,因此结束div标签是从未添加过。
我要感谢尼克的回应,因为这有助于引发关于问题所在的想法。