Как использовать переменные PHP в JavaScript

В некоторых случаях может потребоваться передать PHP глобальные переменные в сценарий JavaScript. В этой статье я расскажу, как использовать переменные PHP в JavaScript и приведу несколько примеров.

Переменные PHP в JavaScript

Существует целый ряд сценариев, для которых может понадобиться включить переменные PHP в код JavaScript. Например, когда страница сайта запрашивается пользователем, модуль PHP на сервере генерирует страницу, выполнив вычисления и отобразив все переменные страницы в окне браузера.

После того, как загрузка страницы завершена, вы больше не контролируете ее (за исключением случая, когда у вас есть сервер на основе временных операций). Но если во время загрузки страницы вы передаете переменные PHP в код JavaScript, то можно продолжать использовать их внутри скриптов JS и управлять отображением страницы и ее динамическим поведением.

Теперь рассмотрим, как можно передать переменные из JavaScript в PHP или наоборот.

Как передать переменные PHP во встроенный JavaScript

Существует два основных метода включения кода JavaScript на странице HTML. Первый — мы располагаем код на той же странице, в разделе <head> или в <body>. Предположим, у нас есть встроенный код JS в разделе <head>, и мы хотим передать переменную PHP username в JavaScript. В этом случае мы нужно использовать следующий код:

<!doctype html>
<html>
<head>
  <script>
  var username = "<?php echo $username ?>";
  alert(username);
  </script>
</head>
<body>
  ...
</body>
</html>

Мы определили в JS новую переменную и назвали ее username. Затем присвоили этой переменной JS PHP переменную $username, повторив ее. Естественно, переменная $username должна быть определена ранее на странице выше данной строки.

Обратите внимание, что вокруг кода PHP, который выводит $username, мы использовали двойные кавычки («) как при объявлении переменной в JS. Если переменная PHP является числом, то кавычки использовать не нужно. Но убедитесь, что вы правильно использовали кавычки, потому что строка вывода также может содержать кавычки, и это разобьет код JS.

Как передать переменные PHP во внешний JavaScript

Также JS код может храниться во внешнем файле (например, script.js), связанном со страницей HTML. Например, если вы хотите передать значение переменной времени (в секундах) в таймер JS, можно использовать следующий код:

<!doctype html>
<html>
<head>
  <script>
  var seconds = <?php echo $seconds ?>;
  </script>
  <script src="script.js"></script>
</head>
<body>
  ...
</body>
</html>

Код во внешнем файле JS (script.js):

setTimeout(function() {
  window.location.href = "/";
}, seconds * 1000);

В приведенном выше коде мы сначала инициализируем значение PHP переменной $seconds переменной JS seconds. После этого переменная становится доступной в DOM, и подключаемый скрипт (script.js) может использовать ее. В приведенном выше примере пользователь перенаправляется на главную страницу после установленного промежутка времени.

Совет: Убедитесь, что в PHP и JavaScript вы определили переменные до того, как используете их в коде. Иначе вы получите сообщение об ошибке «undefined variable«, и код работать не будет.

Надеюсь, эта статья окажется полезной, и вы поделитесь ею с друзьями.

Перевод статьи «How to Include PHP Variables in JavaScript» был подготовлен дружной командой проекта Сайтостроение от А до Я.