Задать вопрос

Что не так в передаче кода JS'ом в HTML?

Помогите, пожалуйста, понять, что происходит.
Кусочек кода HTML с включением PHP:
<div id="content" class="content"><?php include ( './pages/globals.php' ); ?></div>

Он подключает код из globals.php на страницу index.php.
Далее, я, в зависимости от выбранного пункта меню, хочу изменить подключаемый код. Для этого использую JavaScript:
$("#menu .nav-link").removeClass("active"); // удаляем атрибут active из всех пунктов меню
                var key_link = this.innerHTML; // получаем текст ссылки нажатого пункта меню
                var pages_link = pages[key_link]; // получаем ссылку элемента меню
                $(this).addClass("active"); // устанавливаем класс active нажатому пункту меню
                var include = "<div class='content'><?php include ( './pages/"+pages_link+".php'); ?></div>"; //формируем блок для замены
                var inContent = document.getElementById("content"); // получаем элемент по ID
                inContent.innerHTML = include; // заменяем элемент

JS-код выполняется, но происходит непонятное php-скрипт превращается в комментарий:
<!--?php include ( './pages/utilities.php'); ?-->
Пытался передавать $(".content").replaceWith(this.include);, экранировать в JS-коде тэги и знак вопроса - все впустую.
Вот почему JavaScript передает строку кода именно так и как с этим бороться?
Я не совсем уж отполированный чайник и понимаю, что JS работает в браузере, а PHP обрабатывается сервером, но мне кажется, что к описываемой ситуации это не относится.
  • Вопрос задан
  • 176 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Stalker_RED
@Stalker_RED
Я не совсем уж отполированный чайник и понимаю, что JS работает в браузере, а PHP обрабатывается сервером, но мне кажется, что к описываемой ситуации это не относится.

Мне кажется наоборот - совсем чайник и относится.
Вы же это все в браузере делаете, и волшебную смесь html с php не отправляете на сервер?

Попробуйте может jQuery.load() применить.
$('#content').load('pages/utilities.php')

И еще одно: innerHTML - это не всегода текст. Зачастую в этом свойстве именно HTML код бывает. Для текста есть отдельные штуки, типа textContent.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы