Все ленты — последние статьи

Как записать переменную из PHP в JavaScript?

Автор: Дмитрий Бородин

Это довольно частый вопрос, который возникает в форумах. В принципе, любой человек способен самотоятельно разобраться. Но если есть вопрос то попробуем тут разобраться с ним.

Итак, есть браузер. Это программа, которая умеет html-файл показывать красиво на экране. Файл этот может быть взят браузером только из 2-х мест: из Интернета и с локального компьютера (либо сети).

Если браузер берет файлы с диска локального компьютера то этот файл может кто угодно модифицировать. Например, можно создать программу на Си или Паскале, которая запишет в html файл 1000 раз слово "привет". А потом браузер возмет файл и отобразит его на экране пользователя. Заметьте, браузеру по барабану, откуда файл возник. Его это не касается, он получает конечный html файл.

 

Если файл появляется из Интернета то браузер часто не знает о файле совсем ничего: ни даты, ни размера (до полного скачивания), ни настоящего имени. Если данный файл на сервере будет результатом работы какой либо программы, то данное обстоятельство тоже ником образом не заденет браузер (ему опять будет по барабану). На таком свойсте основаны скрипт-языки. Если пометить в веб-каталог на сервере php-файл, то браузер получит не его самого, а только результат работы PHP, выполнившего php-файл.
Что такое JavaScript (JS)? Это тот же html. Другими словами это некоторый набор дополнительных тегов и ничего более. Если в какой либо работающей ПХП-программе заменить echo "<b>Введите логин</b>" на echo "<script>document.write('<b>Введите логин</b>');</script>";, то данная операция никак не скажется на PHP программу. В начале у вас в файле храниться echo. При обращении пользователя к странице данная команда выполняется PHP, который отдает браузеру результат работы. Т.е. ту строку, которая была в echo. Если в строке был JS-код, получиться, что браузер получит его. Итак, что такое JS? Это, как мы выяснили, некий набор дополнительного к чистому html коду текст, который поступает в html-файле в браузер и там выполняется. Вот оно, что никто не желает понимать — PHP работает на сервере, а JS только в браузере. А что у нас в браузере? HTML код. И браузеру все равно, откуда он взялся. Браузер берет html файл и отображает его на экране, вылняя теги, а еще попутно JS-код.

Чтоже нужно, чтобы передеать в JS переменную из PHP? Прежде всего понимание, что вначале выполниться PHP, который создает html-страницу (а попутно может и JS код создать). Представьте, был у нас такой файл:

<html><body>
2 + 3 =
< script>
a=2+3;
document.write(a);
< /script>
</body></html>

Сделаем переменную с помощью PHP:

<html><body>
2 + 3 =
< script>
a=<? echo 2+3; ?>;
document.write(a);
< /script>
</body></html>

и теперь данную формулу считает PHP, а потом вставляет результат в нужное место html страницы. А то, что в результате получится объявление переменной JS программы, то просто положительный побочный эффект. PHP не волнует, что делает программа и зачем она считала сумму 2 и 3.