Как передать переменную из Javascript в PHP

Так уж получилось, что по роду деятельности мне приходится отвечать как на сложные технические вопросы, так и на откровенно нубские. Что поделать, уровень подготовки разных специалистов разный.

Спросили: «Как передать переменную из Javascript в PHP». Ответ на этот вопрос хотелось бы начать с того, что Javascript и PHP выполняются на разных физических машинах, а это значит, что просто так «передать переменную», в обычном понимании этого процесса, не получится.

Поскольку Javascript выполняется на клиентской машине (клиенте), а PHP на серверной (сервер), то назовём передачу данных между Javascript и PHP термином «клиент-серверный обмен», так будет правильнее.

В web обмен данными производится по следующей схеме: на сервер передаётся запрос с клиента, этот запрос обрабатывается сервером, после чего он возвращает на клиент некоторые данные (ответ). Этот способ обмена использует и сам браузер. Тот URL, который вы забиваете в строку адреса — и есть запрос. А ответом является HTML, который выводится на странице браузера.

Однако данные с сервера должен запрашивать не обязательно сам браузер. Ваш код на Javascript, который крутится на страничке, также может выступить в роли клиента. Для этого используют встроенный компонент браузера XMLHttpRequest, который сам по себе может производить запросы на сервер и получать от него ответы, при этом сама HTML-страница не обновляется и вообще никак не меняется.

Работа с сервером через объект XMLHttpRequest часто называется более популярным словом — AJAX.

Однако работать напрямую с этим объектом я лично не рекомендую. Дело в том, что на разных браузерах он работает немного по-разному, и это нужно будет учитывать в коде. Кроме того, «чистый» Javascript не имеет удобных средств работы с событиями, так что у вас получится приличная «портянка» кода, который ещё и будет «глючить» скорее всего.

Поэтому я рекомендую использовать отработанное решение, обкатанное годами — это библиотека jQuery.

Код с использованием этой библиотеки получается достаточно простым и лаконичным. например, если вам нужно передать значение v=6789 на сервер, то можно выполнить следующий код

jQuery.get('/index.php?v=6789', function(result){
    alert(result);
});

При этом ваш скрипт по адресу /index.php получит значение в переменной $_GET[‘v’]. А всё, что он выведет в выходной поток (например, с использованием echo), попадёт в переменную result и будет выведено в всплывающий диалог alert().

Как видите, всё просто.

Можно аналогичным образом отправлять данные через POST, а также отправлять закодированные в JSON данные (наиболее часто используемый способ), но об этом я рекомендую вам прочесть самостоятельно в документации от jQuery (смотрите методы .ajax(), .post()).

На сегодня всё.

 

Подписаться
Уведомить о
guest
1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Дмитрий Мирошников

Очень интересная информация. Думаю, если работает действительно как Вы пишете, очень пригодится в текущем проекте.