Как в js передать переменную php
Перейти к содержимому

Как в js передать переменную php

  • автор:

Передача данных из php в javascript

Т.е. в php я присвоил значения переменным, а теперь хочу к ним обратиться из файла load_map_step.js. Пытаюсь так но ничего не получается, данные пустые.

var mylat = $(Lat).val(); var mylong = $(Lng).val(); 

Отслеживать
задан 1 апр 2016 в 9:14
353 1 1 золотой знак 3 3 серебряных знака 15 15 бронзовых знаков

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

Их можно передать в JS одним из способов:

  • через GET-параметры, если на документ ссылаетесь откуда-то
  • встроив значение переменных в DOM-документа
  • подгрузив через AJAX с сервера, например, сформировав JSON-ответ
  • через cookie
  • сформировав JS-код средствами PHP

Самый простой случай — это передача переменных через DOM, можно положить их например в data-атрибут, какого-то скрытого div-документа

     

Тогда если вы пользуетесь jQuery, вы сможете обратится к этим атрибутам через метод data()

var mylat = $('div.hidden').data('lat'); var mylong = $('div.hidden').data('lng'); 

Отслеживать
ответ дан 1 апр 2016 в 9:19
19.4k 29 29 золотых знаков 47 47 серебряных знаков 139 139 бронзовых знаков
ИМХО, почти идеальный ответ. Осталось лишь добавить json_encode.
1 апр 2016 в 9:41

У вас не получается потому что к моменту, когда вы пытаетесь обратиться из js файла на машине пользователя к перемнным, находящимся на сервере, то эти переменные уже «мертвы». PHP отработал, отдал данные пользователю, и уже знать не знает что происходит со страницей в браузере у пользователя.
Я бы завел бы файл, например vars.php :

 var Name = var Adres = var Lat = var Lng =

Отслеживать
ответ дан 1 апр 2016 в 9:24
user200141 user200141
1,047 1 1 золотой знак 6 6 серебряных знаков 17 17 бронзовых знаков
завели vars.php , а добавляете src=»https://ru.stackoverflow.com/questions/508826/scripts/vars.js»
1 апр 2016 в 9:25
@Grundy: Поправил.
1 апр 2016 в 9:28
Интересно. Реально!
1 апр 2016 в 14:13
Так какой в итоге файл нужно создать vars.php или vars.js.
1 апр 2016 в 14:14
Заводить надо php и с его помощью генерировать js код, примерно как герерируете html код
2 апр 2016 в 22:20

Так как php исполняется на сервере, а js — на клиенте, один из способов получить значение переменных — просто вывести их в блоке скрипт, например так

        

Теперь в момент выполнения скрипта, будет объявлена глобальная переменная, которая будет доступна и внутри подгружаемого скрипта.

Дополнительный вариант: добавить настройки сервера, чтобы js файлы также обрабатывались как php.

как передать переменную из javascript в php

Для передачи можно использовать форму и отправить ее на сервер методом POST или GET.

Вот простой пример:

    Передача переменной из JavaScript в PHP   method="post" action="process.php">  type="text" name="myVar" id="myVar" />  type="submit" value="Отправить" />  // Получаем элемент input const myVarInput = document.getElementById('myVar'); // Устанавливаем значение myVarInput.value = 'Значение переменной'; // Отправляем форму на сервер document.querySelector('form').submit();    

В этом примере мы создаем форму с одним полем ввода myVar и кнопкой отправки. Затем мы получаем элемент input в JavaScript, устанавливаем его значение и отправляем форму на сервер с помощью метода submit() .

На серверной стороне мы можем получить переменную с помощью массива $_POST :

 $myVar = $_POST['myVar']; echo $myVar; // Результат: "Значение переменной" ?> 

Обратите внимание, что при отправке формы методом GET переменная будет передана в URL. Также не забывайте про безопасность и проверяйте данные, получаемые от пользователя.

Как в js передать переменную php

Reg.ru: домены и хостинг

Крупнейший регистратор и хостинг-провайдер в России.

Более 2 миллионов доменных имен на обслуживании.

Продвижение, почта для домена, решения для бизнеса.

Более 700 тыс. клиентов по всему миру уже сделали свой выбор.

Бесплатный Курс «Практика HTML5 и CSS3»

Освойте бесплатно пошаговый видеокурс

по основам адаптивной верстки

на HTML5 и CSS3 с полного нуля.

Фреймворк Bootstrap: быстрая адаптивная вёрстка

Пошаговый видеокурс по основам адаптивной верстки в фреймворке Bootstrap.

Научитесь верстать просто, быстро и качественно, используя мощный и практичный инструмент.

Верстайте на заказ и получайте деньги.

Бесплатный тренинг «PHP для Создания Сайтов: Введение»

Что нужно знать для создания PHP-сайтов?

Ответ здесь. Только самое важное и полезное для начинающего веб-разработчика.

Узнайте, как создавать качественные сайты на PHP всего за 2 часа и 27 минут!

—> Бесплатный курс «Сайт-Визитка За 15 уроков»

Создайте свой сайт за 3 часа и 30 минут.

После просмотра данного видеокурса у Вас на компьютере будет готовый к использованию сайт, который Вы сделали сами.

Вам останется лишь наполнить его нужной информацией и изменить дизайн (по желанию).

—> Бесплатный курс «Основы HTML и CSS»

Изучите основы HTML и CSS менее чем за 4 часа.

После просмотра данного видеокурса Вы перестанете с ужасом смотреть на HTML-код и будете понимать, как он работает.

Вы сможете создать свои первые HTML-страницы и придать им нужный вид с помощью CSS.

Бесплатный курс «Сайт на WordPress»

Хотите освоить CMS WordPress?

Получите уроки по дизайну и верстке сайта на WordPress.

Научитесь работать с темами и нарезать макет.

Бесплатный видеокурс по рисованию дизайна сайта, его верстке и установке на CMS WordPress!

Бесплатный курс «Основы работы с JavaScript»

Хотите изучить JavaScript, но не знаете, как подступиться?

После прохождения видеокурса Вы освоите базовые моменты работы с JavaScript.

Развеются мифы о сложности работы с этим языком, и Вы будете готовы изучать JavaScript на более серьезном уровне.

*Наведите курсор мыши для приостановки прокрутки.

Передача значений переменных из JavaScript в PHP и обратно

В этой небольшой статье мы рассмотрим с вами один интересный момент, касающийся передачи значений переменных.

Иногда возникает необходимость использовать значение PHP-переменной в JavaScript-сценарии, либо наоборот: есть JavaScript-переменная, значение которой нам нужно использовать в PHP-скрипте.

В этом уроке мы рассмотрим простые примеры, которые позволят вам понять общий механизм того, как это можно реализовать.

Для определенности, предлагаю вам создать на локальном компьютере хост с именем php_js и разместить там файл index.php, в котором мы и будем рассматривать наши примеры.

Каркасом файла index.php будет простая HTML-разметка:

    Передача значений переменных   

Для большей наглядности весь код (включая JavaScript) мы будем писать внутри тэгов body.

1. Передача значения PHP-переменной в JavaScript

Давайте напишем такой код в тэге body:

1. Из PHP в JavaScript:

Итак, у нас есть PHP-переменная с именем name и значением Юрий, и наша задача состоит в том, чтобы это значение вывести на экран, но не средствами PHP, а с помощью JavaScript.

Хостинг

Для этого мы открываем как обычно блок JavaScript-кода и внутри него объявляем переменную с произвольным именем (в нашем случае — userName). Теперь мы этой переменной присваиваем в качестве значения результат работы оператора echo применительно к переменной name.

Как вы видите, мы делаем это в блоке PHP-кода, который открываем и закрываем в пределах одинарных кавычек, обрамляющих строковое значение переменной userName в JavaScript-сценарии.

Таким образом, мы с помощью языка PHP формируем синтаксически верный код JavaScript, который будет корректно выполнен.

В результате выполнения этой строки в переменную userName попадет значение Юрий.

Вот и все. Значение PHP-переменной name было передано в JavaScript-переменную userName.

Теперь нам нужно только убедиться, что в нашей JavaScript-переменной userName хранится ожидаемое значение. Для этого мы выводим значение данной переменной на экран с помощью document.write.

В исходном коде сформированной страницы мы увидим при этом следующую картину:

На этом здесь все, и мы можем двигаться дальше.

2. Передача значения JavaScript-переменной в PHP (метод GET)

Здесь, как вы понимаете, ситуация у нас обратная. В наличии есть JavaScript-переменная, и ее значение нужно каким-то образом передать в PHP-сценарий.

Понятно, что эта задача несколько сложнее, ведь если в первом случае (передача значения PHP-переменной в JavaScript) у нас уже была PHP-переменная, значение которой мы просто вывели внутри JavaScript-кода, то здесь такой вариант не пройдет.

Ведь PHP-скрипт ничего не знает о том, что у нас создана некая JavaScript-переменная. И не узнает он об этом до тех пор, пока мы не отправим серверу GET или POST-запрос, в котором будет фигурировать значение JavaScript-переменной.

Вот тогда, уже на следующем запросе, мы сможем получить доступ к значению этой JavaScript-переменной из PHP-сценария.

Под уже существующим кодом допишем следующее:




2. Из JavaScript в PHP (метод GET):

else < echo '

2. Если же при обращении к странице index.php в глобальном массиве $_GET нет элемента с индексом u_name, то запускается JavaScript-сценарий, выведенный средствами PHP и производит переадресацию на эту же страницу, но уже с параметром u_name, имеющим значение переменной userName2 (об этом мы говорили чуть выше).

Теперь, при обращении к index.php мы получим вот такой результат:



Как видите, в адресну строку средствами JavaScript мы передали значение переменной userName2. Вследствие этого в массиве $_GET появился элемент с индексом u_name и значением Дмитрий.

Задача решена, и теперь мы можем как угодно манипулировать полученным значением в рамках PHP-сценария, что мы и сделали, воспользовашись выводом на экран значения элемента u_name из массива $_GET.

В исходном коде сформированной страницы мы увидим при этом следующую картину:



С этим моментом мы также разобрались, и остался еще один вариант.


3. Передача значения JavaScript-переменной в PHP (метод POST)

В предыдущем примере мы рассмотрели способ передачи значения с использованием адресной строки браузера (методом GET).

Сейчас же мы рассмотрим вариант с передачей значения без использования адресной строки, т.е. методом POST.

В этом примере мы будем использовать форму для того, чтобы отправить данные на сервер методом POST.

Под уже существующим кодом напишем:




3. Из JavaScript в PHP (метод POST):

Значение JavaScript-переменной: '; > else < echo ""; exit(); > ?>

Начало у нас похожее: в блоке JavaScript-кода мы объявляем переменную с именем userName3 и значением Александр.

Далее мы открываем тэг параграфа для того, чтобы внутри него вывелось значение JavaScript-переменной.

После этого переходим к PHP-коду. Мы видим, что в ветке if проверяется существование в глобальном массиве $_POST элемента с индексом u_name.

Если данный элемент будет найден, то он будет выведен на экран и будет закрыт тэг параграфа для всего предложения.

В случае отстутствия данного элемента в массиве $_POST управление передается ветке else.

Для этого мы выводим на страницу открывающий и закрывающий блоки JavaScript-кода с помощью опрератора echo, и внутри них формируем синтаксически верный JavaScript-код.

Наша задача сводится к тому, чтобы, используя команду вывода document.write в JavaScript, вывести на страницу обычную HTML-форму и подставить в единственное ее текстовое поле с именем u_name значение, которое хранится в переменной userName3 (Александр).

Самое сложное здесь - не запутаться в кавычках и их экранировании.

Именно поэтому перед написанием подобных скриптов я рекомендую вам сперва создать отдельный файл и написать в нем чистый JavaScript-код, который бы выводил форму и подставлял в поле значение переменной userName3.

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

Именно это мы и делаем в ветке else. Обратите внимание, что текст для вывода (предназначенный для оператора echo) заключен в двойные кавычки. Соответственно, для конструкции document.write мы используем одинарные кавычки.

Это обстоятельство приводит к тому, что нам нужно проэкранировать все символы одинарных кавычек, которые находятся между открывающими и закрывающими одинарными кавычками, ограничивающими вывод строки для конструкции document.write.

Если сейчас обратиться к странице index.php, то результат будет следующий:

Как вы видите, после фразы "Значение JavaScript-переменной:" идет пустота, т.е. пока еще PHP-сценарий не получил значение JavaScript-переменной userName3. И это понятно - ведь еще не было запроса к серверу, в котором могла быть передана эта информация.

При этом ниже в форме у нас находится слово Александр - как раз значение JavaScript-переменной userName3.

Мы вставили его сюда как раз для того, чтобы отправлить форму и передать значение этой переменной методом POST нашему текущему скрипту index.php (если атрибут action отсутствует, то данные будут переданы текущему скрипту).

После нажатия на кнопку отправки мы увидим такую картину:

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

Ну что ж, с этой задачей мы тоже справились - значение JavaScript-переменной userName3 мы передали в PHP-скрипт и вывели его на экран из массива $_POST.

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

С уважением, Дмитрий Науменко.

P.S. Присмотритесь к премиум-урокам по различным аспектам сайтостроения, включая JavaScript, jQuery и Ajax, а также к бесплатному курсу по созданию своей CMS-системы на PHP с нуля. Все это поможет вам быстрее и проще освоить практические навыки веб-программирования:

Понравился материал и хотите отблагодарить?
Просто поделитесь с друзьями и коллегами!

Смотрите также:

PHP: Получение информации об объекте или классе, методах, свойствах и наследовании

CodeIgniter: жив или мертв?

Функции обратного вызова, анонимные функции и механизм замыканий

Применение функции к каждому элементу массива

Слияние массивов. Преобразование массива в строку

Деструктор и копирование объектов с помощью метода __clone()

Эволюция веб-разработчика или Почему фреймворк - это хорошо?

Магические методы в PHP или методы-перехватчики (сеттеры, геттеры и др.)

PHP: Удаление элементов массива

Ключевое слово final (завершенные классы и методы в PHP)

50 классных сервисов, программ и сайтов для веб-разработчиков

Поиск по сайту

Фреймворк Yii2: первая практика

Фреймворк Yii2: теория и первая практика

Овладейте начальными знаниями и навыками по работе в фреймворке Yii2, которые необходимы любому веб-разработчику!

Дизайн лендинга

Веб-дизайн: практический курс создания лендинга

Создавайте дизайн любых сайтов - для себя и на заказ!

В Гармонии с Кодом

Если вы хотите создать сайт своими руками, то вы оказались в нужном месте. Здесь вы найдете обучающие видеокурсы, а также множество видеоуроков и статей по веб-разработке и созданию сайтов.

Уважаемый веб-мастер! В создание данного ресурса вложено много сил и времени. Буду рад, если при копировании материалов вы будете ставить активную ссылку на Codeharmony.ru.

Трансформируем переменные Laravel PHP в Javascript

Переменные PHP в Javascript

Бывают ситуация, когда вам нужно передать данные в JavaScript. Традиционными способами это может быть весьма утомительно, особенно если ваше приложение растёт.
В этом уроке я покажу, как можно элегантно передать переменные из PHP в Javascript. Для этой цели Jeffery Way из Laracasts создал пакет Utilities, с пространством имен: Laracasts\Utilities.

Установка пакета

Запустите следующую команду в composer:

composer require laracasts/utilities

Для Laravel 5.5+ этот шаг можно пропустить, так как фреймворк сам зарегистрирует пакет.
Для остальных версий, в файл app.php в массив provider добавьте нового провайдера:

// config/app.php 'providers' => [ '. ', 'Laracasts\Utilities\JavaScript\JavaScriptServiceProvider' ];

Выполните одну из следующих команд для публикации вендора:
(первая опубликует всех неопубликованных вендоров, вторая — только нужного нам. — прим.переводчика)

php artisan vendor:publish // Или. php artisan vendor:publish --provider="Laracasts\Utilities\JavaScript\JavaScriptServiceProvider"

Конфигурация пакета

Если вы откроете конфигурационный файл этого пакета config/javascript.php, вы найдете два параметра:
bind_js_vars_to_this_view — к какому view будут добавлены переменные. наиболее подходящий это footer.
js_namespace — по умолчанию это window, поэтому все переменные будут добавлены в его глобальный объект.

 'footer', /* |-------------------------------------------------------------------------- | Пространство имен JavaScript |-------------------------------------------------------------------------- | | По умолчанию, мы добавляем переменные глобальному объекту window. | Рекомендуется его изменить, например на "SomeNamespace". | Тогда вы получите доступ к переменным через "SomeNamespace.someVariable". | */ 'js_namespace' => 'window' ];

Использование пакета

В Laravel 5, разумеется, добавьте use JavaScript; в начало вашего контроллера.

public function index() < JavaScript::put([ 'foo' =>'bar', 'user' => User::first(), 'age' => 29 ]); return View::make('hello'); >

Как вы можете видеть в вышеприведенном коде, я передал три типа переменных: первая — строка, вторая — объект,
а третья — число. И, на стороне javascript я тоже хочу, чтобы эти переменные были в соответствии с их типами.

console.log(foo); // bar console.log(user); // User Obj console.log(age); // 29

Как вы можете видеть ниже результаты моей консоли — эти переменные доступны и все их типы соответствуют нужным.

console.log

Наш Телеграм-канал — следите за новостями о Laravel.

Задать вопросы по урокам можно на нашем форуме.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *