Взаимодействие PHP и JavaScript
Автор: IT-студия SoftTime (softtime.ru)
В этом разделе обсуждаются особенности работы со
скриптами JavaScript в PHP. В отличие от PHP, скрипты JavaScript
выполняются на машине клиента, в то время как PHP серверный язык
программирования. В отличие, от технологии Java или ASP.NET он не имеет в
своём составе средств для работы на клиентской стороне. Поэтому для
создания эффективных Web-приложений необходимо комбинировать PHP и
JavaScript скрипты.
Существует две возможности такого взаимодействия:
передача переменных из JavaScript в PHP и динамическое формирование
скриптов JavaScript средствами PHP.
Передача переменных из JavaScript в PHP
Одной из распространенной задачей является определение
разрешение экрана и глубину цвета монитора посетителя страницы средствами
JavaScript с последующей передачей этих данные в PHP-скрипт.
Это довольно часто встречающаяся задача, особенно при
написании счетчиков посещений и создании “динамического дизайна”.
Скрипт JavaScript, выполняющий необходимые действия,
размещен файле index.html, содержимое которого приведено в нижеследующем
листинге:
Файл index.html
<Script
Language="JavaScript">
var height=0;
var width=0;
colorDepth = screen.colorDepth;
if (self.screen)
{
width = screen.width
height =
screen.height
}
else if (self.java)
{
var
jToolKit = java.awt.Toolkit.getDefaultToolkit();
var
scrsize = jToolKit.getScreenSize();
width = scrsize.width;
height = scrsize.height;
}
if (width > 0
&& height > 0)
{
// Производим
перенаправление на скрипт counter.php, передавая в
//
переменной scrsize строку, содержащую значения width,
//
height и colorDepth.
window.location.href =
"http://localhost/view.php?
width="
+ width +
"&height="
+ height +
"&color="
+ colorDepth;
} else exit();
</Script>
После выполнения этого кода происходит автоматический
переход на страницу view.php, в котором происходит вывод разрешения экрана
и глубины цветопередачи в окно браузера (см. листинг ниже).
Полученную информацию можно помещать в базу данных для
набора статистики о наиболее распространенных разрешениях экранов,
посетителей сайтов.
Файл view.php
<?php
echo "Ширина : ".$_GET['width'];
echo "Высота : ".$_GET['height'];
echo "Цветовое
<sup>разрешение</sup> : ".$_GET['color'];
?>
Как видно, работа с данными из JavaScript, аналогична
работе с данными, отправляющихся методом GET.