Как использовать переменные PHP в Javascript


Оглавление (нажмите, чтобы открыть):

Как передать переменные JavaScript в PHP?

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

Но я не могу получить значение $_POST[‘hidden1’] в $salarieid . Здесь что-то не так?

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

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

просто сохраните его в куки:

а затем прочитать его с php

это не симпатичное решение, но оно работает. Приветствия.

Есть несколько способов передачи переменных из JavaScript в php (конечно, не на текущей странице)

  1. отправить информацию в форме, как указано здесь, (приведет к обновлению страницы)
  2. передать его в ajax (несколько сообщений здесь об этом) (без обновления страницы)
  3. сделать запрос http через запрос XMLHttpRequest (без обновления страницы) следующим образом:

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

Вот пример работы: Получить значение переменной javascript на той же странице в php.

PHP запускается на сервере до того, как страница будет отправлена ​​пользователю, JavaScript запускается на пользовательском компьютере после его получения, поэтому PHP script уже выполнен.

Если вы хотите передать значение JavaScript в PHP script, вам нужно будет выполнить XMLHttpRequest, чтобы отправить данные обратно на сервер.

Вот предыдущий вопрос, который вы можете получить за дополнительной информацией: Ajax Tutorial

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

Нажав кнопку «Отправить», вы отправите страницу и распечатайте представленные данные.

Я пытался понять это сам, а затем понял, что проблема в том, что это своего рода обратный взгляд на ситуацию. Вместо того, чтобы пытаться передавать вещи из JavaScript в php, возможно, в большинстве случаев лучше пойти другим путем. PHP-код выполняется на сервере и создает HTML-код (и, возможно, также Java-скрипт). Затем браузер загружает страницу и выполняет сценарии html и java.

Кажется, что разумный способ приблизиться к подобным ситуациям — использовать PHP для создания необходимого JavaScript и HTML, а затем использовать JavaScript на странице, чтобы сделать то, что PHP не может сделать. Похоже, что это даст вам преимущества как PHP, так и JavaScript довольно простым и понятным способом.

Одна вещь, которую я сделал, которая создает видимость передачи вещей в PHP с вашей страницы на лету, — это использование html image tag для вызова PHP-кода. Что-то вроде этого:

Сайт о компьютерной технике

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

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

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

После того, как загрузка страницы завершена, вы больше не контролируете ее ( за исключением случая, когда у вас есть сервер на основе временных операций ). Но если во время загрузки страницы вы передаете переменные PHP в код JavaScript , то можно продолжать использовать их внутри скриптов JS и управлять отображением страницы и ее динамическим поведением.

Теперь рассмотрим, как можно передать переменные из JavaScript в PHP или наоборот.

Как передать переменные PHP во встроенный JavaScript

Существует два основных метода включения кода JavaScript на странице HTML . Первый — мы располагаем код на той же странице, в разделе или в . Предположим, у нас есть встроенный код JS в разделе , и мы хотим передать переменную PHP username в JavaScript . В этом случае мы нужно использовать следующий код:

Передача переменной js в php. Как использовать переменные PHP в JavaScript

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

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

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

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

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

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

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

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

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

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

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

Итак, мы снова продолжаем изучение основ PHP и в этой статье познакомимся со способами передачи переменных в PHP, а именно с методами GET и POST . Каждый из них имеет свои плюсы и минусы, и применяется в соответствующих ситуациях, речь о которых пойдет в данной статье. Мы также рассмотрим примеры кода, которые демонстрируют работу методов POST и GET.

Передача переменных при помощи метода GET

Данный метод передачи переменных применяется в PHP для передачи переменных в файл при помощи адресной строки. То есть переменные передаются сразу через адресную строку браузера. Примером может быть, например, ссылка на статью в WordPress без использования ЧПУ (SEF), которая имеет примерно следующий вид:

То есть в данном случае передается переменная $p со значением 315. Теперь давайте более подробно на примере рассмотрим работу метод GET. Пускай нам нужно передать в файл три переменных $a, $b и $c методом GET и вывести их сумму на экран. Для этого можно использовать следующий код.

Мастер Йода рекомендует:  Введение в ООП с примерами на C#. Часть вторая. Все, что нужно знать о наследовании

$a = $_GET[«a»]; $b = $_GET[«b»]; $c = $_GET[«c»]; $summa = $a + $b + $c; echo «Сумма $a + $b + $c = $summa»;

Поскольку все переменные перед передачей будут помещаться в глобальный массив GET (), то мы первым делом присваиваем нашим переменным значения соответствующих элементов массива GET. Делаем это в самом начале во избежание разнообразных ошибок при передаче переменных. Далее для демонстрации работы прописываем произвольную формулу и выводим результат на экран.

Для проверки работы метода GET достаточно просто добавить к ссылке на файл знак вопроса «?» и через амперсанд «&» перечислить переменные с их значениями. Пускай у нас есть файл get.php , который лежит в корне сайта . Для того чтобы передать в файл переменные, достаточно прописать в адресной строке следующее.

Как видно с примера, сначала мы добавляем знак вопроса сразу после названия файла. Далее прописываем переменную и через равно указываем ее значение. После этого через амперсанд аналогичным образом перечисляем другие переменные. Теперь при переходе по этой ссылке нам выведется сумма переменных $a, $b и $c.

Данный способ очень простой и не требует создания дополнительных файлов. Все необходимые данные поступают прямо через адресную строку браузера.

Ну а теперь давайте перейдем ко второму способу передачи переменных в PHP – методу POST .

Передача переменных в PHP при помощи метода POST

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

Код первого файла с формой для отправки данных. Дадим ему название post-1.php

  • action – указываем файл, в который будут передаваться переменные.
  • method – метод передачи переменных. В нашем случае это метод POST.
  • name – название формы. Одновременно в файл будет передана переменная с таким именем.
  • name – имена переменных. В нашем случае это имя и фамилия (переменные name и lastname).
  • type – тип поля. В нашем случае это текстовое поле.
  • name – имя кнопки и переменной, которая будет передана вместе с другими переменными.
  • type – тип кнопки. В нашем случае это кнопка для отправки данных.
  • value – текст на кнопке.

Код второго файла, который будет служить приемником переменных. Назовем его post-2.php

$name = $_POST; $lastname = $_POST; echo «Значения переменных, переданных методом POST — $name и $lastname»;

Как и с методом GET, мы первым делом присваиваем переменным значения соответствующих элементов глобального массива POST . Далее для наглядности выводим эти переменные на экран при помощи .

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


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

На этом все. Удачи вам и успеха в освоении основ PHP.

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

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

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

После того, как загрузка страницы завершена, вы больше не контролируете ее ( за исключением случая, когда у вас есть сервер на основе временных операций ). Но если во время загрузки страницы вы передаете переменные PHP в код JavaScript , то можно продолжать использовать их внутри скриптов JS и управлять отображением страницы и ее динамическим поведением.

Теперь рассмотрим, как можно передать переменные из JavaScript в PHP или наоборот.

Как передать переменные PHP во встроенный JavaScript

Существует два основных метода включения кода JavaScript на странице HTML . Первый — мы располагаем код на той же странице, в разделе или в . Предположим, у нас есть встроенный код JS в разделе , и мы хотим передать переменную PHP username в JavaScript . В этом случае мы нужно использовать следующий код:

как использовать переменную PHP в Javascript

Я разрабатываю веб-приложение в php, и я много раз использовал javascript. Теперь мне нужно использовать переменную php в javascript. Например, переменная, сгенерированная из возвращаемого запроса SQL, или переменная сеанса, которые необходимы в разделе javascript.

Каков наилучший способ использования переменной php в javascript?

4 ответа

6 Решение Chris [2020-04-18 10:11:00]

Может быть, вы могли бы сделать что-то вроде:

Это один из основных способов достижения того, чего вы хотите.

EDIT: Как отметил JiteshNK, вы также можете:

1 Nehal [2020-04-18 10:25:00]

Вы можете сделать что-то вроде этого:

Если нормальная переменная:

Если у вас есть json:

0 RJParikh [2020-04-18 10:19:00]

Если используется его простая строковая переменная.

Если переменная php является массивом, тогда

-1 TomS [2020-04-18 10:22:00]

Я не совсем понимаю, что вы пытаетесь сделать. В принципе, я не знаю, что вы хотели бы сделать, это возможно. Причина: JavaScript работает в браузере. В то время, когда выполняется ваш код JavaScript, страница уже загружена. В то время больше нет такой возможности, как PHP. Ваш браузер знает только о HTML. PHP работает на сервере и используется для «построения» или «сборки» или «компиляции» вашей HTML-страницы. То, что вы определенно можете сделать, это: вы можете использовать PHP для создания вашего JS-кода динамически (например, вы уже делаете это с вашим HTML файлом), и там используется PHP для заполнения JS-переменной содержимым переменной PHP.

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

Здравствуйте, есть код:

В нём есть переменная count, нужно передать её значения в php-переменную $counter .
Пробовал сделать «в лоб» ‘ — ‘ = count; увы безрезультатно. Поискал в интернете, конкретно таковоже ненаходил, были похожие, но там слишком мудрёно и непреемлемым методом.

Вопрос — Как передать внутри страницы значение js-переменной count в php-переменную $counter.

Javascript
13.10.2013, 22:35

Передача переменной из javascript в php
Привет всем!) мне нужно, чтобы при каждом нажатии кнопки добавлялось дополнительное текстовое поле.

Передача данных из переменной javascript в переменную php
Доброго времени суток, господа, простите чайника, но вот такая ситуация : 1. Есть файл html со.

Передача значения переменной из php в javascript
Нужно передать переменную из php в javascript,заранее спасибо)

Передача массива из PHP в JavaScript
На сайте существует база данных MySQL доступ к которой осуществляется по скриптам языка PHP.

Передача переменной из JS в PHP
Доброго времени суток! Столкнулся с проблемой. Есть php-страница примерно такого вида: 10

13.10.2013, 23:28 2
Javascript
14.10.2013, 20:00 [ТС] 3
14.10.2013, 20:39 4

PHP-интерпретатор формирует на сервере HTML+CSS+JS-код для браузера
и формирует его полностью — от
повторяю — на сервере и полностью

когда HTML+CSS+JS-код сформирован, PHP-интерпретатор отключается и этот сформированный HTML+CSS+JS-код передаётся браузеру

и только потом в браузере могут обрабатываться какие-то события и исполняться какой-то javascript-код

поэтому что-то передать из javascript-кода в формирующий его PHP-код невозможно

14.10.2013, 20:39
14.10.2013, 20:40 5
14.10.2013, 23:45 6
Javascript
Javascript
15.10.2013, 00:20 7
15.10.2013, 00:59 8

А проблемы у него в конце были с добавлением в базу MySQL без перезагрузки страницы.

Добавлено через 15 минут
Видимо, если данные заполненных форм могут передаваться серверу (а формы — это, та-скать, сформированный HTML-CSS), то и в некоторых случаях и результаты выполнения JS на стороне клиента тоже.

15.10.2013, 01:42 9

но попробую объяснить ещё раз

1. PHP-интерпретатор находится на сервере

2. PHP-интерпретатор включается всякий раз, когда в коде программы на сервере встретит что-то ?> и выключается, когда выполнит это что-то

3. когда PHP-интерпретатор встретит последний в коде ?> , он отключается насовсем

4. и только после этого последнего выключения PHP-интерпретатора сервер отдаёт сформированный HTML+CSS+JS-код браузеру по сети интернет

5. после того, как сервер отдал HTML+CSS+JS-код браузеру пользователя, пользователь вообще может выдернуть интернет-кабель из своего компа (либо отключить вай-фай), ибо сервер браузеру уже не нужен

6. браузер начинает отображать HTML+CSS+JS-код

7. встретил браузер конструкцию, кою вы предлагаете document.write(» «); , он начнёт её исполнять, но только в виде document.write(«»); , потому что выделенное красным уже ранее было исполнено на сервере
и сервер ничего не знал о том, чему равна переменная count , ибо javascript на сервере не исполняется

как вам ещё объяснить, чтобы вы поняли?

предложенная вами конструкция
document.write(» «);
равносильна
пожарь рыбу ( поймай рыбу )
жарка рыбы происходит в браузере
и жарить будут ту рыбу, которая уже ранее поймана на сервере

нельзя в браузере заказать пожарить именно «золотую рыбку» или «фальшивую путинскую щуку весом в 21 кг»
жарить будут такую рыбу, какую заранее закажут и поймают на сервере

т.е. ваша конструкция абсолютно безграмотна


Как использовать переменную в регулярном выражении в PHP/JavaScript?

Не так давно мы рассмотрели с вами способы поиска совпадения участков текста в строке на различных языках программирования.

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

Как использовать переменную в регулярном выражении в PHP?

В PHP поставленная задача решается простыми кавычками. И если раньше мы осуществляли поиск по регулярному выражению так:

То теперь мы можем использовать и переменную как необходимое слово для поиска:

Все очень просто.

Как использовать переменную в регулярном выражении в JavaScript?

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

И, соответственно, пример ее использования:

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

Как получить значение переменной из javascript в php?

Пишу сайт на php. Написан небольшой рабочий парсер новостных статей с некого новостного ресурса. Однако, парсер рабочий до того момента, пока не появилась необходимость применить javascript.

По задумке, парсер должен работать следующим образом:

  1. В файле news_highlights.php имеется код, который парсит заголовки статей и выводит их у меня на главной странице.
  2. Имеется файл script.js с кодом javascript, который по клику на определенный спарсенный заголовок изымает ссылку на полный текст выбранной статьи в источнике и помещает эту ссылку в сессию javascript с помощью команды sessionStorage.setItem.
  3. Имеется файл page-news-article.php, содержащий код, который уже, собственно, парсит всю статью, используя ссылку, полученную в пункте 2.

Содержимое файлов — ниже.

Вопрос: почему в php файле № 3 я могу получить значение переменной js (ссылку на статью источника) и вывести его через echo на странице, но при этом скрипт php, находящийся в том же файле № 3, на отрез отказывается принимать его? Как мне заставить php принять переменную (ссылку на статью источника) и выполнить скрипт?

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

Как передать переменные и данные из PHP в JavaScript?

у меня есть переменная в PHP, и мне нужно ее значение в моем коде JavaScript. Как я могу получить переменную из PHP в JavaScript?

у меня есть код, который выглядит так:

у меня есть код JavaScript, который должен val и выглядит примерно так:

18 ответов

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

в определенном порядке:

  1. используйте AJAX для получения необходимых данных с сервера.
  2. Эхо-данные на страницу где-то, и использовать JavaScript, чтобы получить информацию от DOM.
  3. Эхо-данные непосредственно на JavaScript.

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

1. Используйте AJAX для получения необходимых данных с сервера

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

плюсы

  • лучшее разделение между слоями — если завтра вы прекратите использовать PHP и захотите перейти на сервлет, REST API или некоторые другой сервис, вам не нужно менять большую часть кода JavaScript.
  • более читабельным — JavaScript-это JavaScript, PHP-это PHP. Не смешивая их, вы получаете более читаемый код на обоих языках.
  • позволяет асинхронную передачу данных — получение информации из PHP может быть время/ресурсы дорогие. Иногда вы просто не хотите ждать информации, загружать страницу и получать доступ к информации всякий раз.
  • данные не находятся непосредственно на разметке — это означает, что ваша разметка очищена от любых дополнительных данных, и только JavaScript видит ее.

минусы

  • задержка — AJAX создает HTTP-запрос, а HTTP-запросы переносятся по сети и имеют сетевые задержки.
  • государство — данные, полученные с помощью отдельного HTTP-запроса, не будут содержать никакой информации HTTP-запрос, который извлек HTML-документ. Вам может понадобиться эта информация (например, если HTML-документ генерируется в ответ на отправку формы), и, если вы это сделаете, вам придется каким-то образом передать ее. Если вы исключили встраивание данных на странице (что у вас есть, если вы используете этот метод), то это ограничивает вас куки/сеансами, которые могут быть подвержены условиям гонки.

Пример Реализации

С AJAX вам нужно две страницы, одна где PHP генерирует вывод, а второй-где JavaScript получает этот вывод:

get-data.в PHP

Я собираюсь попробовать более простой ответ:

описание проблемы

во-первых, давайте разберемся в потоке событий, когда страница обслуживается с нашего сервера:

  • сначала запускается PHP, он генерирует HTML, который подается клиенту.
  • затем HTML доставляется клиенту, после того, как PHP будет сделан с ним, я хотел бы подчеркнуть, что как только код покинет сервер-PHP будет сделан с ним и больше не сможет получить доступ он.
  • затем HTML с JavaScript достигает клиента, который может выполнять JS на этом html.

так действительно, основная вещь, чтобы помнить здесь, что HTTP не имеет состояния. Как только запрос покинул сервер, сервер не может его коснуться. Таким образом, это оставляет наши варианты:

  1. отправить больше запросов от клиента после первоначальный запрос выполняется.
  2. кодировать то, что сервер должен был сказать в начальный запрос.

решений

это основной вопрос, который вы должны задать себе:

я пишу веб-сайт или приложение?

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

отправка дополнительных запросов от клиента после выполнения первоначального запроса —медленно как это требует больше HTTP-запросов, которые имеют значительные накладные расходы. Более того, это требует asynchronousity как сделать AJAX-запрос требуется обработчик завершения.

Я бы не рекомендую сделать еще один запрос если ваш сайт не является приложением для получения эта информация с сервера.

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

у вас есть два способа решения проблемы

  • установить cookie — cookies-это заголовки, отправленные в HTTP-запросах, которые могут читать как сервер, так и клиент.
  • закодировать переменную как В JSON — JSON выглядит очень близко к объектам JavaScript и большинство объекты JSON являются допустимыми переменными JavaScript.

настройка cookie на самом деле не очень сложно, вы просто назначаете ему значение:

тут вы можете читать его с помощью JavaScript используя document.cookie :


вот короткий ручной парсер, но ответ, который я связал прямо над этим, лучше протестирован:

Cookies хороши для небольших данных. Это то, что часто делают службы отслеживания.

как только у нас будет больше данных, мы можем кодировать его с помощью JSON внутри переменной JS:

предполагая, что $value is json_encode able на стороне PHP (обычно это так). Этот метод-это то, что StackOverflow делает со своим чатом, например (ТОЛЬКО используя .net вместо php).

приложение

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

мой ответ:здесь объясняет, как загружать данные с помощью AJAX в JavaScript:

теперь сервер просто должен содержать /your/url маршрут / файл, содержащий код, который захватывает данные и что-то с ним делает, в вашем случае:

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

Постскриптум: ты должен быть очень известно о векторах атаки XSS, когда вы вводите что-либо из PHP в JavaScript. Это очень трудно правильно избежать значений, и это чувствительно к контексту. Если вы не знаете, как обращаться с XSS, или не знаете об этом — пожалуйста, прочитайте эта статья OWASP, этот и этот вопрос.

Я обычно использую атрибуты data — * в html.

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

  • PHP 5.2.0 или более
  • $PHPVar кодируется как UTF-8, Unicode.

просто используйте один из следующих методов.

мне очень нравится, как WordPress работает с enqueue и локализация функции, поэтому, следуя этой модели, я написал простой класс для ввода скриптов на страницу в соответствии с зависимостями скриптов и для предоставления дополнительных данных для скрипта.

вызов enqueue_script() функция для добавления сценария, установки souce и зависимостей на других сценариях, и дополнительных данных необходимых для скрипт.

и print_scripts() метод приведенного выше примера отправит этот вывод:

независимо от того, что сценарий «jquery» запрашивается после «jquery-ui», он печатается раньше, потому что он определен в «jquery-ui», что он зависит от «jquery». Дополнительные данные для «пользовательского скрипта» находятся внутри нового блока скрипта и помещаются перед ним, он содержит mydata объект, который содержит дополнительные данные, теперь доступен для «custom-script».

он не работает, потому что $val не определено, что касается javascript, т. е. php ничего не выводил для $val . Попробуйте просмотреть источник в вашем браузере, и вот что вы увидите:

это не работает, потому что php попытается обработать myPlugin как константа, и когда это не удастся, он попытается рассматривать его как строку ‘myPlugin’ который он попытается объединить с выходом функции php start() и поскольку это не определено, это приведет к фатальной ошибке

хотя это, скорее всего, сработает, так как php создает допустимый javascript с ожидаемыми аргументами, если это не удастся, скорее всего, потому что myPlugin еще не готов. Проверьте порядок исполнения.

также вы должны отметить, что php out put небезопасен и должен быть отфильтрован с помощью json_encode()

редактировать

Потому Что Я не заметил отсутствующую скобку в myPlugin.start( :-\

как указывает @Second Rikudo, чтобы он работал правильно $val необходимо будет содержать закрывающую скобку, например: $val=»42);»

означает, что php теперь будет производить myPlugin.start(42); и будет работать, как ожидалось, при выполнении javascript

— после попытки некоторое время Хотя это работает , однако это замедляет работу. поскольку php-это скрипт на стороне сервера, а javascript-на стороне пользователя.

Я вышел с простым методом назначения переменных JavaScript с помощью PHP.

он использует атрибуты данных HTML5 для хранения переменных PHP, а затем назначается JavaScript при загрузке страницы.

полный учебник можно найти здесь

вот один, который я не вижу в качестве опции. это похоже на использование AJAX, но явно разные.

сначала установите источник скрипта непосредственно в файл PHP.

вы даже можете передать переменную обратно в файл PHP, например:

затем в «your_php_file.в PHP»:

вот вам ‘PHP’ чтобы использовать эту переменную:

Теперь у вас есть переменная JS с именем ‘name’ , а вот это ваше ‘Javascript’ чтобы использовать эту переменную :

предположим, что переменная является числом, в таком случае, это проще!—11

выход:

Допустим, ваша переменная не является целым числом, но если вы попробуете метод выше, вы получите что-то вроде этого:

но в JavaScript это синтаксическая ошибка.

Итак, в php у нас есть вызов функции json_encode это кодирует строку в объект json.

С abcd в json это «abcd» ,так это выглядит так:

вы можете использовать тот же метод для массивов:

и ваш JavaScript выглядит так:

вывод на консоль

после многих исследований я нашел самый простой способ легко передать все виды переменных.

в вашем PHP-скрипте у вас есть две переменные, и вы пытаетесь отправить их в свои js-скрипты:

в любом из ваших javascript, вызванных на Вашей странице, просто вызовите vars.

надеюсь, я помог кому-нибудь !

я предположу, что данные для передачи являются строкой.

как заявили другие комментаторы, AJAX является одним из возможных решений, но минусы перевешивают плюсы: он имеет задержку, и его сложнее запрограммировать (ему нужен код для извлечения значения как на стороне сервера, так и на стороне клиента), когда более простая функция экранирования должна быть достаточной.

Итак, мы вернулись к побегу. json_encode($string) работает если вы кодируете исходную строку как UTF-8 сначала, если она еще не, потому что json_encode требует данных UTF-8. Если строку в ISO-8859-1, то вы можете просто использовать json_encode(utf8_encode($string)) ; в противном случае вы всегда можете использовать iconv сначала выполните преобразование.

но есть большой gotcha. Если вы используете его в событиях, вам нужно запустить htmlspecialchars() о результате, чтобы сделать его правильным кодом. И тогда вы должны либо быть осторожны, чтобы использовать двойные кавычки, чтобы заключить событие, или всегда добавлять ENT_QUOTES в функции htmlspecialchars. Например:

, вы не могу использовать htmlspecialchars на обычном JS-коде (код заключен в теги). Это делает использование этой функции склонной к ошибкам, забывая htmlspecialchars результат при написании кода события.

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

функция требует PHP 5.4+. Пример использования:

теперь вы можете получить значение с помощью DOM, использовать innerHTML идентификатора span, в этом случае вам не нужно делать никаких вызовов на сервер, или ajax или любую другую вещь.

ваша страница будет печатать его с помощью php, и вы javascript получите значение с помощью DOM.

вот как я это делаю (есть много способов):

  1. преобразование данных в JSON
  2. вызов AJAX получать JSON
  3. преобразование JSON на в JavaScript объект

Шаг 1

Шаг 2

и это сработает. Это просто назначение переменной javascript, а затем передача значения существующей переменной php. Поскольку php пишет строки javascript здесь, он имеет значение переменной php и может передавать ее напрямую.

Сайт о компьютерной технике

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

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

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

После того, как загрузка страницы завершена, вы больше не контролируете ее ( за исключением случая, когда у вас есть сервер на основе временных операций ). Но если во время загрузки страницы вы передаете переменные PHP в код JavaScript , то можно продолжать использовать их внутри скриптов JS и управлять отображением страницы и ее динамическим поведением.

Теперь рассмотрим, как можно передать переменные из JavaScript в PHP или наоборот.

Как передать переменные PHP во встроенный JavaScript

Существует два основных метода включения кода JavaScript на странице HTML . Первый — мы располагаем код на той же странице, в разделе или в . Предположим, у нас есть встроенный код JS в разделе , и мы хотим передать переменную PHP username в JavaScript . В этом случае мы нужно использовать следующий код:

Как использовать переменные Javascript в PHP и переменные PHP в Javascript?

У меня есть скрипт, который должен использовать AJAX для получения видео с Youtube, но для захвата файла PHP требуется AJAX. Этот PHP-файл нуждается в переменной Javascript для работы, однако я не могу найти способ сделать это на этом сайте. Я нашел способ сделать это с Jquery по этому вопросу Qoura .

Но если вы не хотите идти туда по какой-либо причине (я сделал некоторые корректировки в PHP-коде, потому что он был создан очень плохо), чтобы сделать переменную Javascript переменной PHP, вы должны использовать это (я не очень опытный с jQuery вообще, поэтому я не буду пытаться объяснить это, а также имейте в виду, что это только базовые примеры, которые легко можно абстрагировать несколькими способами)

Jquery:

и PHP для этого

Превратить переменную PHP в переменную Javascript намного проще, однако это не заменяет вышесказанное.

Мастер Йода рекомендует:  4 причины, которые обязывают нас тестировать приложения
Добавить комментарий