2010-12-03 3 views
1

Я использую jQuery для захвата ссылки, указывающей на файл php. Этот php-файл в основном html, но вызывает две php-функции, каждая из которых использует цикл for для вывода html. Проблема, с которой я столкнулся, заключается в том, что вызов ajax неправильно встраивает html, сгенерированный петлей php for.jQuery ajax call неправильно nesting php generated 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

+0

Как выглядит фактический ответ, а не код PHP, но полностью визуализированный? Я бы сказал, что ваша проблема там. – 2010-12-03 11:59:49

+0

Цените ответ, Ник. Я разместил здесь несколько скриншотов: Обычный - http://nimblehost.com/test/normal.png – 2010-12-03 12:05:00

ответ

1

Go цифра - тратить часы, исследуя, как это исправить, пост здесь в качестве последнего средства, то я полагаю, что проблема 30 минут.

Для записи проблема заключалась в вызове функций php. Они включали разделы, где закрывающий тег div был заключен в оператор if.

Оператор if просто проверяется, был ли пользователь вошел в систему, и хотя это было true Очевидно, что, по-видимому, вызов ajax таким образом завершает выполнение такого оператора if, поэтому закрывающий тег div никогда не добавлялся.

Я хотел бы поблагодарить Ника за ответ, так как это помогло вызвать идею о том, где может быть проблема.