2015-12-26 2 views
0

У меня есть этот header.php, который я включил во все страницы, в которых я нуждаюсь. Я использовал @include_once('header.php');, чтобы загрузить страницу через AJAX в div «container» другой страницы, не беспокоясь о том, что она отображается дважды. Но так как на главной странице и на загруженной странице заголовок включен, заголовок отображается дважды. Я думал, что include_once должен был не допустить этого. Что мне делать?PHP: @include_once для динамически загружаемого контента?

+0

'include_once' гарантирует, что он будет включен только один раз в текущий скрипт. Когда вы загружаете через AJAX, это еще один запрос, и он не принимается во внимание, что он был загружен ранее из другого запущенного скрипта. – Jon

+0

Так что я не могу сделать эту работу так, как я хочу? Причина, по которой я хочу, чтобы она включалась в оба сценария, заключается в том, что люди могут либо перейти на эту страницу, либо загрузить ее динамически] –

+0

Исключить заголовок в содержимом, загружаемом через ajax, или логически переработать вашу систему, заголовок включается, когда он не нужен. Мы мало что можем сделать, чтобы помочь вам в этом. – Jon

ответ

0

Рекомендация Джона - это «правильный путь» - перепроектируйте свою систему, чтобы заголовок был включен только тогда, когда это необходимо.

Однако, как (вычислительно дорогой) обходной путь, в вашем коде, который включает в себя заголовок с помощью AJAX, вы можете проверить наличие элемента, который существует только в header.php:

//We know that the string "<div id='header'> exists only in header.php 
if($('#header').length < 1) 
{ 
    //your including header.php code here 
} 
Смежные вопросы