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.