![]() |
|
||||||||||||||
|
|
|
Таким образом, сам собой напрашивается вывод: прямое взаимодействие скриптов на PHP и JavaScript попросту невозможно. Но не всё так фатально, косвенное взаимодействие мы обеспечить всё-таки можем. Для передачи данных между клиентской и серверной стороной можно использовать один из трёх вариантов:
Первый способ пригоден только для передачи данных и параметров с сервера на клиент. Суть метода проста: при генерации страницы необходимые параметры зашиваются прямо в текст скрипта. <html> … <script type=”text/javascript”> <?php If ( $login == ”admin” ) echo “var isAdmin=true” else echo ”var isAdmin=false” ?> If(isAdmin) Document.write(“Im Administrator”); Else Document.write(“Im user”); </script> … В этом примере мы на этапе формирования страницы вписываем в неё заданную переменную с нужным нам значением. Работает это так:
Второй способ несколько сложнее, но позволяет передавать параметры как со стороны сервера, так и со стороны клиента. Суть в том, что и PHP и JavaScript позволяют читать и сохранять cookies (подробнее про cookies рассказывалось в одном из предыдущих уроков). Например (условный): <html> Здесь мы на стороне сервера устанавливаем cookie с необходимыми нам параметрами. При этом клиенту посылается специальным образом сформированная команда и данные, т.е. все cookie передаются ДО передачи основной страницы. Это значит, что все установленные сервером cookie будут доступны после загрузки страницы, а значит и при выполнении скриптов JavaScript. Аналогично и для обратной передачи: все cookies, установленные из JavaScript, будут переданы на сервер при первом же обновлении страницы. Основной недостаток этого метода – ограничение на размер передаваемых данных. Максимальный размер одного cookie не может превышать 4Кб, а у некторых пользователей возможность установки cookies вообще отключена. Так же этот способ создаёт большой дополнительный трафик, т.к. все cookies автоматически отправляются на сервер при каждом обновлении страницы. У обоих методов взаимодействия есть два общих недостатка:
Последний способ взаимодействия – AJAX. Это наилучший, пусть и не самый простой способ. Ajax – это комбинированная технология, использующая все преимущества PHP и JavaScript, позволяя изменять и обновлять данные на страницах вашего сайта «на лету», т.е. без перезагрузки страницы. Для использования Ajax обычно создаётся так называемые "frontend" и "backend". Backend – это PHP-скрипты, выполняющиеся на сервере. Обычно такие скрипты возвращают структурированные блоки данных (массивы), не содержащие никакого оформления. Frontend – это скрипты JavaScript, выполняющиеся в браузере пользователя. Основное их назначение – вызвать требуемый скрипт backend`a, получить данные и правильно их вывести на странице, добавив при необходимости обрамление из тегов и стилей. Подробнее об использовании Ajax вы можете прочитать в соответствующем уроке по JavaScript на этом сайте. Таким образом, взаимодействие PHP и JavaScript наладить всё-таки можно, но для этого надо хорошо разбираться в обоих языках. Из собственного опыта могу сказать, что для домашних страничек и небольших сайтов проще всего применять первый способ (прямую запись текста скрипта). Для проектов покрупнее или динамичнее – Ajax. А вот от третьего способа я бы рекомендовал вам воздержаться, т.к там слишком много подводных камней и условностей, таких как размер cookie, их поддержка браузерами, формат данных, кодировка и т.п. |
|
|
Спасибо, что заглянули на сайт. Надеюсь, Вам понравилось. Заходите еще. Здесь всегда рады вам :) |
|
© 2005-2012 |
E-mail: |