1

jQuery を使用して、php ファイルを指すリンクをハイジャックしています。この php ファイルはほとんどが html ですが、それぞれが for ループを使用して html を出力する 2 つの php 関数を呼び出します。私が直面している問題は、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 ステートメントは、ユーザーがログインしているかどうかを確認するだけでした。これは明らかにtrueでしたが、この方法で ajax 呼び出しを行うと if ステートメントが失敗したため、終了 div タグが追加されませんでした。

問題がどこにあるのかについてのアイデアを引き出すのに役立ったので、応答してくれた Nick に感謝したいと思います。

于 2010-12-03T12:26:25.953 に答える