У меня возникла интересная проблема. В настоящее время я разрабатываю php-страницу и вам нужно получить доступ к переменной php в javascript onload.
$(document).ready(function() { var temp = <?php $page_id ?> }
это действительно? Я знаю, что это может показаться странным и не допускаться, но я разрабатываю страницу с двумя всплывающими окнами. Окна создаются с использованием одного и того же шаблона представления, и нет возможности различать друг друга. Если я сохранил скрытое значение на странице с информацией, уникальной для этой страницы
<input type="hidden" value="<?php $page_id ?> id="page_id" />
если одновременно открываются два вида, у меня нет возможности получить уникальный идентификатор страницы
var temp = $("#page_id").val();
Потому что есть два представления с одним и тем же идентификатором ввода, который не является уникальным. Короче говоря, правильно ли ссылаться на переменную php в javascript?
Короче говоря, это справедливо для ссылки на переменную php в javascript.
Короткий ответ, да, вы можете … PHP – это серверный язык, вы можете использовать его там, где хотите.
Примечание. Я предполагаю, что вы делаете это в файле с расширением php
.
Короче говоря, правильно ли ссылаться на переменную php в JavaScript?
Вы не ссылаетесь на переменную PHP в JavaScript. Вы просто генерируете JavaScript-код динамически через PHP, где значение переменной PHP $page_id
становится жестко закодированным в код JavaScript.
Если вы создаете код JavaScript через PHP, и вы используете var temp = <?php echo $page_id ?>
Он будет работать, но я бы не стал рассматривать его как наилучшую практику для крупных проектов. Я предпочитаю, чтобы мой JavaScript-код оставался статичным.
Ваша первая часть кода действительна до тех пор, пока вы создаете javascript. То же самое не работает, если вы поместите свой js-код в отдельный .js-файл. Генерирование динамических js не является хорошей практикой по нескольким причинам, например, кэширование и повторное использование js-браузера.
Если вы хотите полностью отделить js-код php, вы можете создать коммуникацию клиент-сервер, где js будет запрашивать определенное значение из скрипта php через ajax и позже играть с ним в среде js.
Единственное, что вам нужно – это некоторое разъяснение.
По сути, вы не можете передать переменную . Вы можете передать только его ценность.
Кроме того, нельзя «передавать» что-либо от PHP до javascript. Javascript генерируется PHP. Это похоже на HTML. Вы просто генерируете любой код, который вы хотите. И вы можете использовать любые переменные, конечно же, с помощью этого генерации кода.
Ваш второй пример тоже будет работать, но вам нужно будет пересчитать значение переменной PHP на странице, чтобы JavaScript мог читать ее. Также используйте htmlspecialchars, чтобы убедиться, что вы не закончили с неверным html.
<input type="hidden" value="<?php echo htmlspecialchars($page_id, ENT_QUOTES) ?>" id="page_id" />
Вы найдете ответ на этот вопрос .