1

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

将不胜感激有关如何解决此问题的任何意见或建议。

替代文字

4

1 回答 1

1

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

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

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

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

于 2010-12-03T12:26:25.953 回答