Главная Войти О сайте

Как передать переменную

Как передать переменную

Содержание:
  1. Организация передачи данных между клиентским и серверным скриптами
  2. Передача переменных из PHP-скрипта в JavaScript-сценарий
  3. Передача переменных из JavaScript-сценария в PHP-скрипт
  4. Объединение PHP и JavaScript в одном сценарии
  5. Асинхронная передача данных

Организация передачи данных между клиентским и серверным скриптами

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

Передача переменных из PHP-скрипта в JavaScript-сценарий

На стадии формирования страницы можно легко передать переменную с её значением из PHP-скрипта в JavaScript-сценарий. PHP-скрипт формирует HTML-код страницы, включая в него скрипты. Таким образом, он может вставить любые переменные JavaScript в код, чтобы передать их со значениями. Например:


<?php
$JSvarName = 'serverTime';
$JSvarValue = date('H:i');
$JScode = $JSvarName.'="'.$JSvarValue.'";';
print '<script language="javascript">'.$JScode.'alert("А на сервере сейчас "+'.$JSvarName.');</script>';
?>

Передача переменных из JavaScript-сценария в PHP-скрипт

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


<script language="javascript">
var now = new Date();
var varName = 'clientTime';
var varValue = now.getHours() + ":" + now.getMinutes();
window.location.href = 'http://example.com/test2.php?' + varName + '=' + varValue;
</script>

Этот сценарий отправит на скрипт test2.php переменную с именем "clientTime" и её значение, содержащее текущее время компьютера в формате ЧАС:МИНУТА. Такой метод передачи данных называется «синхронным» и приводит к немедленной перезагрузке страницы, загружая результат работы скрипта test2.php.

Объединение PHP и JavaScript в одном сценарии

Все рассмотренные части кода передачи переменных с сервера в браузер и обратно можно объединить в один PHP-файл:


<?php
if($_GET) echo 'Получена переменная '.key($_GET).'='.$_GET[key($_GET)];
$JSvarName = 'serverTime';
$JSvarValue = date('H:i');
$JScode = $JSvarName.'="'.$JSvarValue.'";';
print '<script language="javascript">'.$JScode.'alert("А на сервере сейчас "+'.$JSvarName.');</script>';
?>
<script language="javascript">
function sendData() {
var now = new Date();
var varName = 'clientTime';
var varValue = now.getHours() + ":" + now.getMinutes();
window.location.href = "http://example.com/test2.php?" + varName + "=" + varValue;
return false;
}
</script>
<br /><br />
<a href="javascript:sendData();">Отправить данные на сервер</a>

В этом объединенном сценарии PHP-код формирует JavaScript-код, передавая ему переменную с именем "serverTime" и значением, содержащим текущее время сервера. При загрузке страницы в браузер JavaScript-сценарий показывает сообщение с этим временем. При клике пользователя на ссылке "Отправить данные на сервер" запускается функция sendData(), которая отправляет GET-запрос на сервер, передавая имя переменной ("clientTime") и её значение (время клиента). PHP-скрипт считывает имя и значение переменной из суперглобального массива $_GET, печатает их и начинает весь описанный сценарий заново.

Асинхронная передача данных

Описанный выше метод реализует «синхронную» передачу данных. Если вам необходима асинхронная передача данных между клиентскими и серверными скриптами, рекомендуется использовать AJAX (Asynchronous JavaScript and XML). Эта тема заслуживает отдельного рассмотрения, которое вы можете найти в отдельной статье.


4Java.ru