У двух php-файлов одна разметка и один js-файл на двоих, а предназначение у них разные. Но js все равно где какой php, ведь разметка одинаковая

131
05 января 2020, 22:40

Есть два файла (index.php и list.php) с одинаковой разметкой (я пока не придумал, как сделать все в одном файле, поэтому пока так - два файла с одинаковой разметкой). С одного файла на другой и обратно можно переключиться по ссылке:

<a href="http//…<? echo ($_SERVER['SCRIPT_NAME'] == '/index.php') ? '/list.php' : '/index.php'; ?>">

Оба этих файла используются для обработки txt-файлов с одной небольшой разницей. В list.php можно файлы подгрузить и обработать разом. В index.php только так: открыть txt, скопировать содержимое, вставить в textarea и получить результат. В разметке имеется div.left-bar. В index.php в div.left-bar находятся настройки обработки вставленного текста. В list.php в .left-bar генерируется список файлов, которые лежат на сервере (каждую секунду .left-bar в list.php обновляется, чтобы оперативно видеть какие файлы есть). В footer.php уже подгружен script.js (script.js единственный js-файл, обновляет .left-bar каждую секунду в list.php, он же реагирует на событие oninput в index.php – вставить текст и получить результат). Сам же footer.php вставлен в оба файла (index.php и list.php) путем require_once(‘footer.php’).

В общем, проблема в том, что когда я захожу в index.php, я вижу настройки ровно 1 секунду. Потом начинаю видеть только список файлов. Что, впрочем, не мудрено ведь в js записано const leftBar = document.querySelector('.left-bar'); и эта const leftBar в подгружена в обоих файлах. Только в index.php там статически указаны всякие input[type=checkbox] и т.п, которые затираются.

Как правильно сделать, чтобы в index.php я видел настройки, а в list.php список файлов, и чтобы разметка была одна и та же? Или укажите мне, в чем мой замысел в корне не верен? Спасибо!

Answer 1
const leftBar = document.querySelector('.left-bar');
if (leftBar.classList.contains("static")) {
  // не перегружать содержимое
}
// или
const leftBar = document.querySelector('.left-bar');
if (leftBar.querySelector("input[type='checkbox']")) {
  // не перегружать содержимое
}
READ ALSO
Как записать в html файл код скопированного div?

Как записать в html файл код скопированного div?

Как записать код копии div в html файл? С помощью этого кода делаю копию div, но скопирован div выводится только на экран и не записывается в файл...

143
Мобильный детектор, обнаружение картинки

Мобильный детектор, обнаружение картинки

Как сделать так чтобы при открытии главной страницы сайта через десктоп показывало видео, а при мобильном входе, то картинки, я скачал mobiledetector...

106
Периодическое зависание Apache

Периодическое зависание Apache

Каждый день где-то в 17:48 сайт начинает работать очень медленно, - точнее происходит долгое ожидание ответов на запросы к БД (стоит Oracle 11g)На...

138
std::optional не может найти в namespace&#39;е std

std::optional не может найти в namespace'е std

на самом простом поймал ошибки, при объявлении std::optional ругается на отсутствие члена optional в пространстве именВ чем может быть проблема

132