На главную страницу
Передача параметров из 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();
}
?>
|