Как передать переменную из 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 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Дмитрий Мирошников

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