jQuery ajax调用错误地嵌套php生成的html

时间:2010-12-03 11:51:06

标签: php jquery html ajax generated

我正在使用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();
  });
}

非常感谢有关如何解决此问题的任何意见或建议。

alt text

1 个答案:

答案 0 :(得分:1)

去图 - 花几个小时研究如何解决这个问题,作为最后的手段发布在这里,然后我发现问题是30分钟后的问题。

对于记录,问题出在被调用的php函数中。它们包括将结束div标记包含在if语句中的部分。

if语句只是检查用户是否已登录,即使这是 true 显然以这种方式进行ajax调用失败了这样的if语句,因此结束div标签是从未添加过。

我要感谢尼克的回应,因为这有助于引发关于问题所在的想法。