На главную страницу

Передача параметров из JavaScript в PHP

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

Вариант 1. Передача переменных во внешний файл PHP.

Одной из распространенной задачей является определение разрешение экрана и глубину цвета монитора посетителя страницы средствами JavaScript с последующей передачей этих данные в PHP-скрипт. Это довольно часто встречающаяся задача, особенно при написании счетчиков посещений и создании "динамического дизайна". Скрипт JavaScript, выполняющий необходимые действия, размещен файле 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)  
 {  
 // Производим перенаправление на скрипт view.php, передавая в  
 // переменной scrsize строку, содержащую значения width,  
 // height и colorDepth.  
 window.location.href = "http://localhost/view.php? 
                         width=" + width + 
                        "&height=" + height + 
                        "&color=" + colorDepth; 
 }
else exit();  
</Script> 

После выполнения этого кода происходит автоматический переход на страницу view.php, в котором происходит вывод разрешения экрана и глубины цветопередачи в окно браузера (см. листинг ниже):

<?php 
  echo "Ширина : ".$_GET['width']; 
  echo "Высота : ".$_GET['height']; 
  echo "Цветовое <sup>разрешение</sup> : ".$_GET['color']; 
?> 

Как видно, работа с данными из JavaScript, аналогична работе с данными, отправляющихся методом GET. Вариант 2. Динамическое формирование скриптов JavaScript средствами PHP внутри файла.

Передать переменные также можно сгенерировав JavaScript код из PHP и заставив браузер обновиться, посылая определённые переменные назад PHP скрипту. Нижеприведённый пример показывает, как это сделать. Он позволяет PHP коду получить высоту и ширину экрана, что, обычно, возможно только на стороне клиента.

<?php
if (isset($_GET['width']) AND isset($_GET['height']))
# Функция определения параметров экрана
 {   // Вывод размеров экрана
  echo "Ширина экрана: ". $_GET['width'] ."<br />\n";
  echo "Высота экрана: ". $_GET['height'] ."<br />\n";
 }
 else
 {
  // Вызов файла средствами javaScript с параметрами через метод GET
  echo "<script language='javascript'>\n";
  echo " location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
            . "&width=\" + screen.width + \"&height=\" + screen.height;\n";
  echo "</script>\n";
  exit();
 }
?>

В начало страницы
Hosted by uCoz