#php #parsing #element #uniqueidentifier
#php #синтаксический анализ #элемент #уникальный идентификатор
Вопрос:
Я пытаюсь создать новостной сайт (обновляя существующий, на самом деле основанный на CMSMS, в котором много автоматически генерируемого кода, который, похоже, вызывает всевозможные проблемы.) в любом случае, я обновляю шаблон, где вместо перехода на новый сайт, где размещена статья, принадлежащая резюме, я бы хотел, чтобы резюме скрывало div с текстом резюме при нажатии кнопки «подробнее». Я знаю, как сделать кнопку переключения и все такое, проблема в том, что нескольким резюме на одной странице требуются уникальные идентификаторы, которые устанавливаются в шаблоне автоматически. Идея, которая у меня была, заключалась в том, чтобы сгенерировать их с:
<?php $firstId = uniqid(); $secondId = uniqId(); ?>
Тогда я бы назвал их так:
<div id="<?php echo $firstId; ?>" class=""> perhaps <span>here </span> or whatevs.</div>
И затем что-то подобное для второго идентификатора. Идея сделать это таким образом заключается в том, что я смогу настроить таргетинг на эти Divs из JS, просто нацелившись на fx $ firstId .
однако, если я щелкну правой кнопкой мыши и проверю элемент с помощью firebug, я просто получу
id="<?php echo $firstId; ?>"
вместо:
id="someUniqueId"
Итак, вопрос в том, как мне заставить его фактически проанализировать код, чтобы я мог вызывать элемент по идентификатору? например, установить для его видимости значение hidden .
Комментарии:
1. вы сохранили свою страницу как .php?
Ответ №1:
Невозможно определить, где находится решение проблемы, потому что это пользовательское программное обеспечение. Но сама проблема заключается в простом идентификаторе, PHP не анализируется и не выполняется. Вот почему вы видите открывающие и закрывающие теги PHP в выходных данных HTML.
Использование uniqid()
кажется плохой идеей, если вы спросите меня, потому что вы не сможете напрямую настроить таргетинг на любой из этих элементов в вашем JavaScript. Кроме того, накладные расходы на эту функцию совершенно не нужны.
Просто используйте счетчик для элементов, которые вы инициализируете произвольным числом, и увеличивайте его с каждым выводимым элементом.
Комментарии:
1. Смотрите мой собственный ответ, вдохновленный вашим последним утверждением.
Ответ №2:
Попробуйте рассмотреть это.
ob_start();
include_once "your_html_with_php_code_file";
$output = ob_get_contents();
ob_end_clean();
$output будет тем, что вам нужно.
Ответ №3:
В итоге я использовал цикл for, проходящий через каждый элемент один за другим, ориентируясь на них по их css-классам, которые в данном случае просто пусты.
поскольку у меня есть доступ к управлению количеством объектов, которые будут показаны на странице, а также шаблонами как полных статей, так и резюме, я мог бы использовать простые числа с уверенностью, что они будут уникальными каждый раз.
Скрипт просто просматривает страницу, присваивая всем кнопкам в div, содержащим элементы, на которые я ориентируюсь, значение 0-9. Затем он присваивает разделам, содержащим полные статьи, идентификатор текущей кнопки ID 40, в результате чего они переходят с 40 на 49
и затем сводки идут с 20-29
Затем остальная часть кода просто помечает определенные элементы, изначально используя идентификатор кнопки, затем просто вычитая / добавляя к значению в двух разных переменных, чтобы получить идентификатор статьи и идентификатор резюме, затем я продолжаю свой путь оттуда. Это работает отлично, даже если это немного просто.
Вдохновение пришло из вашего ответа, Fleshgrinder, спасибо 🙂