Энциклопедия мобильной связи

Передать переменную из php файла в javascript. Как использовать переменные PHP в JavaScript

Многих начинающих веб-программистов интересует вопрос, как передать переменную из JavaScript в PHP? И еще больше программистов не могут понять, зачем это вообще нужно. Ответ на второй вопрос каждый найдет для себя сам, а я сейчас обьясню как это работает.

Поскольку JavaScript выполняется на стороне пользователя, а PHP на стороне сервера, то значение не может быть передано напрямую. Поэтому результат выполнения кода JavaScript мы передадим в PHP через протокол HTTP. Мы рассмотрим несколько способов, и каждый сам решит какой способ ему использовать.

Способ первый

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


Если браузер пользователя поддерживает JavaScript, то после выполнения скрипта страница обновится и мы увидим в адресной строке запрос:

http://путь_к_скрипту/имя_скрипта.php?width=1024&height=768

Знак? после имени скрипта указывает веб-серверу что мы хотим сделать GET-запрос к нашему PHP-скрипту, после него идет имя нашей переменной и знак равенства, который присваивает переменной следующее за ним значение, определенное JavaScript-функцией. Знак & служит разделителем для переменных в запросе. В результате в PHP будут переданы две переменные: $width со значением равным ширине экрана (1024) и $height со значением равным высоте экрана (768).

А на экране увидим результат выполнения скрипта. Например:


Полученный результат: ширина и высота экрана пользователя Способ второй

Пишем код JavaScript и выполняем его на стороне пользователя, а потом передаем результат через HTTP-протокол в PHP:


Здесь мы присвоили переменной query запрос со значениями ширины и высоты экрана пользователя, как и в предыдущем примере. В результате выполнения этого кода переменной query будет присвоена строка width=1024&height=768 (при разрешении экрана 1024х768).

Теперь нам нужно передать переменную query из JavaScript в PHP. Передавать запрос будем PHP-скрипту с именем script.php. Для этого мы воспользуемся HTML-тегом , который вставляет изображения в HTML-страницу. Вместо картинки мы укажем имя нашего PHP-скрипта и присоединим к нему переменную query с запросом:


Таким способом можно передавать запросы любому скрипту. Результат выполнения этих двух блоков JavaScript-кода браузер пользователя превратит в следующий HTML-код:


Браузер обратится к серверу за картинкой по указанному адресу и, в результате, сделает GET-запрос к script.php с нужными нам параметрами. Теперь мы можем обработать полученные переменные в нашем script.php:

Способ третий

Данные будут переданы PHP-скрипту после нажатия пользователем на ссылку:


или на кнопку в форме:


В случае использования формы каждую переменную необходимо передавать в отдельном поле. Мы использовали скрытые поля формы, имена которых соответствуют именам переменных в нашем PHP-скрипте. Или же можно вообще не использовать текстовые поля, а передать все данные через параметр action="" нашей формы:

Заключение

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

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

Копирование статьи запрещено.

8 ответов

HTML/HTTP является апатридом, другими словами, то, что вы делали/видели на предыдущей странице, полностью не связано с текущей страницей. За исключением случаев, когда вы используете что-то вроде сеансов, файлов cookie или GET/POST. Сессии и файлы cookie довольно просты в использовании, причем сеанс гораздо безопаснее, чем файлы cookie. Более безопасный, но не полностью безопасный.

сессия:

//On page 1 $_SESSION["varname"] = $var_value; //On page 2 $var_value = $_SESSION["varname"];

Не забудьте запустить session_start(); на обеих этих страницах, прежде чем пытаться получить доступ к массиву $_SESSION , а также до того, как какой-либо вывод будет отправлен в браузер.

//One page 1 $_COOKIE["varname"] = $var_value; //On page 2 $var_value = $_COOKIE["varname"];

Большая разница между сеансами и куки файлами заключается в том, что значение переменной будет храниться на сервере, если вы используете сеансы и на клиенте, если вы используете файлы cookie. Я не могу придумать какую-либо серьезную причину использовать файлы cookie вместо сеансов, за исключением случаев, когда вы хотите, чтобы данные сохранялись между сеансами, но даже тогда, возможно, лучше сохранить их в БД и получить их на основе имени пользователя или идентификатора.

GET и POST



Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!