PHP и JavaScript
В этом разделе обсуждаются особенности работы со скриптами JavaScript в PHP. В отличие от PHP, скрипты JavaScript выполняются на машине клиента, в то время как PHP серверный язык программирования. В отличие, от технологии Java или ASP.NET он не имеет в своём составе средств для работы на клиентской стороне. Поэтому для создания эффективных Web-приложений необходимо комбинировать PHP и JavaScript скрипты.
Существует две возможности такого взаимодействия: передача переменных из JavaScript в PHP и динамическое формирование скриптов JavaScript средствами PHP.
Передача переменных из JavaScript в PHP
Одной из распространенной задачей является определение разрешение экрана и глубину цвета монитора посетителя страницы средствами JavaScript с последующей передачей этих данные в PHP-скрипт.
Это довольно часто встречающаяся задача, особенно при написании счетчиков посещений и создании “динамического дизайна”.
Скрипт javascript, выполняющий необходимые действия, размещен файле index, содержимое которого приведено в нижеследующем листинге:
Файл index
<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 "Ширина : ".Array['width'];
echo "Высота : ".Array['height'];
echo "Цветовое <sup>разрешение</sup> : ".Array['color'];
?>
Как видно, работа с данными из JavaScript, аналогична работе с данными, отправляющихся методом GET.