Взаимодействие PHP и JavaScript В отличие от 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> Код <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']; ?> Код <?php echo "Ширина : ".$_GET['width']; echo "Высота : ".$_GET['height']; echo "Цветовое <sup>разрешение</sup> : ".$_GET['color']; ?> Как видно, работа с данными из JavaScript, аналогична работе с данными, отправляющихся методом GET.