Как изменить js файл на php

Обновлено: 15.07.2024

Я могу получить доступ к PHP var с помощью Javascript следующим образом:

Но что, если я хочу использовать внешний JS файл:

ОТВЕТЫ

Ответ 1

Вы действительно не обращаетесь к нему, вы вставляете его в код javascript, когда вы обслуживаете страницу.

Однако, если ваш другой javascript не из внешнего источника, вы можете сделать что-то вроде:

а затем в файле .js используйте цвет следующим образом:

Ответ 2

Вы также можете получить доступ к данным из php script в Javascript (я буду использовать jQuery здесь), как этот

Создайте входное скрытое поле внутри вашего php файла, как это

в вашем файле javascript:

Это также сделает работу:)

Ответ 3

То, что я видел, это разрешить .js файлы через PHP-интерпретатор. Который я не могу рекомендовать.

Я рекомендую извлекать значения через AJAX и вернуть файл PHP в файл JS. Это намного более чистый метод.

Ответ 4

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

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

Ответ 5

Это помогает иметь некоторое представление о проверке taint, проверке данных и безопасности;)

Ответ 6

Как говорят другие, javascript не имеет доступа к php-переменным. Однако он имеет доступ к DOM. Таким образом, вы можете использовать php для добавления атрибутов к некоторому элементу страницы. А затем вы можете получить доступ к этим атрибутам с помощью javascript.

например. <div > полностью доступен для javascript

Ответ 7

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

Изменить в ответ на ответ Олафур Вааге: Думаю, запись в файл js - это не единственный способ. Передача js через PHP-интерпретатор никогда не приходила мне в голову (по уважительной причине).

Ответ 8

Вы можете изменить его на

И PHP script мог просто написать JavaScript:

Хотя использование AJAX, как сказал Sepehr Lajevardi, будет намного чище

Ответ 9

Решение Don хорошо, кроме того, если вы хотите использовать php-массив во внешнем javascipt, это может вам помочь:

Javasript: (Теперь вы можете использовать массив как обычный массив Javascript)

Ответ 10

Вы не можете сделать это и не пытаетесь, так как это не рекомендуется, но вы можете передавать php-переменные в качестве параметров функции для функции, написанной во внешних js

Ответ 11

2017-2018 и выше решение:

Затем вы можете просто загрузить нужный файл js с параметром строки запроса следующим образом:

echo '<script type="text/javascript" src="https://utyatnishna.ru/info/128889/js/main.php?string='.$string.'&array='.$array.'">';

Тогда js/main.php будет выглядеть так, например. Вы можете проверить свои переменные следующим образом:

При открытии index.php выводится следующее. Итак, вы видите, вы не открываете js/main.php , и у вас все еще есть функциональность javascript.

введите описание изображения здесь

Ответ 12

Вы можете include() их так же, как и все остальное:

Это будет в основном отображать внешний файл как встроенный js. Основным недостатком здесь является то, что вы теряете потенциальную выгоду производительности кеширования браузера. С другой стороны, это намного проще, чем повторно объявить переменные php в javascript.

От автора: в данное время практически каждый сайт использует язык JavaScript и различные библиотеки написанные на нем, к примеру jQuery. И очень часто возникает задача в передаче значений переменных из JavaScript в PHP. Поэтому в данном уроке мы с Вами рассмотрим способы, при помощи которых, можно решить данную задачу. Хочу обратить внимание, что передать можно только значение, а не саму переменную, определенного языка.

скачать исходники
скачать урок

1. Постановка задачи

Для начала рассмотрим сайт, на примере которого, мы будем изучать тему сегодняшнего урока:



Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Это очень простой сайт, состоящий из двух страниц: главная страница, выводит список статей хранящихся в базе данных, и страница полного просмотра текста статьи. Исходный код данного сайта, я здесь приводить не буду, так как он будет доступен Вам в исходниках к этому уроку. Рассмотрим только назначение главных файлов:

index.php – подключает необходимые файлы и выводит главную страницу на экран;

view_text.php – выводит страницу просмотра полного текста статьи;

config.php – содержит настройки для подключения к базе данных и собственной само подключение;

funcntions.php – содержит две функции по получению всех статей из базы данных и получению одной конкретной статьи по ее идентификатору;

js/script – пустой файл, в котором мы будем писать скрипты на языке JavaScript;

css/style.css – файл стилей для сайта.

Теперь давайте рассмотрим способы передачи значений переменных из JavaScript в PHP.

2. Передача значения переменных из PHP в JavaScript

Это пожалуй самый простой способ. Давайте вспомним, где содержится интерпретатор языка JavaScript?
Интерпретатор языка JavaScript, в содержится в браузере. То есть код JavaScript обрабатывается непосредственно браузером, когда страница передается ему от сервера.

Теперь вспомним, где интерпретируется язык PHP? Интерпретатор языка PHP содержится на сервере. При этом PHP интерпретируется до того как страница попадет в браузер, пользователя. Значит, для передачи значения переменной языка PHP в язык JavaScript, достаточно между тегами script вывести значение этой переменной. К примеру, создадим переменную в конфигурационном файле config.php (переменная PHP):

Затем, в файле index.php передадим ее значение в JavaScript (перед подключением файла js/script.js):

Теперь в файле js/script.js используем значение данной переменной. А именно, создадим блок с классом for_button, в блоке

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

И добавим несколько правил css для нового созданного блока в файл css/style.css:

Теперь давайте посмотрим, что у нас получилось:


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

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

Передача значений переменных языка JavaScript в PHP, задача несколько сложнее, так как требуется передать значение переменной на сервер в интерпретатор языка PHP. Это можно реализовать как методом GET (через адресную строку), так и методом POST. Метод GET предусматривает передачу данных через адресную строку. Поэтому перейдем в файл js/script.js и добавим следующий код:

Обратите внимание, что значение атрибута value я оставил пустым. Мы его установим, используя JavaScript. А именно, создадим переменную search и, используя jQquery, присвоим ее значение атрибуту value текстовому полю:


При этом, значение переменной search будет передано в сценарий языка PHP. Обратите внимание, что обработчиком формы выступает файл view_text.php. Значит, в него нужно добавить код, который обработает данные пришедшие методом POST. Поэтому откроем данный файл и добавим следующий код:

Затем в одном из блоков выведем значение переменной $str:

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


5. Асинхронный способ передачи значений переменных из JavaScript в PHP и наоборот

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

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

Для работы с AJAX используем библиотеку jQuery и ее метод ajax, со следующими параметрами:

Пример JSON строки, описывающей объект с двумя свойствами: firstname и lastname:

data – данные которые отправляются на сервер. Обратите внимание, что на сервер мы отправим объект ob, который представим в виде JSON строки, при помощи функции JSON.stringify(ob);

success – описываем функцию которая будет выполнена в результате успешного запроса к серверу. Параметр html, данной функции – это ответ от сервера. Который должен обязательно прийти в формате JSON, в соответствии с настройкой dataType, и который будет конвертирован в объект (то есть в html содержится ответ от сервера в виде объекта). В теле данной функции, выведем на экран заголовок статьи (условимся, что ответ от сервера – это будет массив данных о конкретной статье). Для этого используем метод prependTo(), и вставим данные в блок с классом for_content. При этом добавим анимационный эффект появления данных на экране, при помощи метода fadeIn() (метод hide() необходим, что бы мгновенно скрыть выводимый на экран блок, для того что бы в последствии его можно было плавно показать на экран, используя метод fadeIn()).

Теперь, так как мы передаем данные в файл index.php, в него необходимо добавить код, который обработает эти данные:

То есть, проверяем, если пришли данные методом POST, то сохраняем их в переменную $param. При этом предварительно обработав их функцией json_decode(). Которая декодирует JSON строку и возвращает объект, хранящийся в ней. Таким образом в переменной $param содержится объект. У которого есть свойство $id, его мы используем в качестве идентификатора статьи для функции get_text(), которая вернет массив данных статьи по ее идентификатору. Этот массив мы сохраним в переменную $row. Затем конвертируем его в JSON строку и выводим на экран, используя функцию echo. Так как мы обращаемся к данному файлу асинхронно, и данный участок кода сработает, когда придут данные методом POST (а в нашем случае, они придут только асинхронно). Поэтому весь вывод на экран и будет являться ответом от сервера, который попадет в переменную html. Далее что бы в ответ от сервера, не попало лишних данных, мы выполняем exit().

Вот и все, можно проверять работу нашего скрипта:


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

На этом давайте прощаться. Всего Вам доброго и удачного кодирования.


Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

у меня есть файл JavaScript (расширение .js , а не .html ), содержащий несколько функций JavaScript.

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

  • это возможно?
  • мне нужно было бы "включить" .php файл, содержащий функцию PHP в ?
  • как бы я это сделал?
    например, скажем, я был файл с названием проекта "MyLib".php, содержащий функцию myFunc , которая принимает два параметра ( param1 и param2 ). Тогда у меня есть содержащих функцию под названием myJsFunc . Как бы назвать myFunc (PHP) изнутри myJsFunc (функции JavaScript)? Не нужно ли мне как-то включить PHP-файл в ?

Если вам просто нужно передать переменные из PHP в javascript, вы можете иметь тег в файле php/html, используя javascript для начала.

если вы пытаетесь вызвать функции, то вы можете сделать это такой

добавьте приведенный выше код .htaccess файл и запустить php внутри JS файлов

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

Если вы должны использовать PHP для создания файлов JavaScript, то, пожалуйста, используйте чистый PHP для создания всего файла JS. Вы можете сделать это, используя нормальный.PHP файл точно такой же таким образом, вы обычно выводите html, разница заключается в установке правильного заголовка с помощью функции заголовка PHP, так что правильный тип mime возвращается в браузер. Тип mime для JS обычно"приложение / javascript"

слегка измененная версия, основанная на Blorgbeard one, Для легко ссылающихся ассоциативных PHP-массивов на объектные литералы javascript:

PHP файл (*.в PHP)

сначала определите массив со значениями, которые будут использоваться в файлах javascript:

теперь запишите значения массива php в литерал объекта javascript:

файл Javascript (*.в JS)

Теперь мы можем получить доступ к объектному литералу javscript из любого другого .файл JS с пометкой:

Это несколько сложно, так как PHP получает оценку на стороне сервера, а javascript получает оценку на стороне клиента.

Я бы вызвал ваш PHP-файл, используя вызов AJAX из javascript, а затем использовал JS для вставки возвращенного HTML где-то на Вашей странице.

на самом деле лучший способ сделать это-написать javascript в a .php и использовать jquery в отдельном файле для использования файла сценария jQuery get или загрузки jQuery используйте функцию php include в документе, где будет жить javascript. По сути, так это и будет выглядеть.

динамический файл Javascript в a .php расширение файла-содержит смесь PHP переменных, предварительно обработанных сервером и javascript, который нуждается в этих переменных в скриптах.

на главной странице html вызовите статический файл как обычный JS-файл. Вызов статического JS-файла заставит загрузить динамические данные с сервера.

какой-то файл.на PHP 1:

или просто эхо скрипт, такие как

файл 3 myhtml.HTML-код:

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

поскольку Javascript выполняется в браузере, на стороне клиента и PHP на стороне сервера, вам нужно AJAX - по сути, ваш скрипт делает HTTP-запрос скрипту PHP, передавая любые необходимые параметры. Скрипт вызывает вашу функцию и выводит результат, который в конечном итоге получает вызов Ajax. Как правило, вы не делаете это синхронно (ожидая результата) - " A " в AJAX означает асинхронный!

вы можете сделать двойное разрешение файла: "имя файла.РНР.АО" таким образом. PHP генерирует JS в этом файле. Я получил все параметры из DB. Это сработало для меня на xampp.

нет никакого безопасного способа включить на js .

одна вещь, которую вы можете сделать как define ваши данные файла php как javascript global variable в файле php. например, у меня есть три переменные, которые я хочу использовать как js.

после use в своем js file везде, где вы хотите использовать.

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

это стандартный способ вызова данных PHP-скрипта в JS-файл без включения js в php-код или php-скрипт в js.

Передача данных из JS в PHP

На второй строке я создал переменную txt и поместил в нее значение Hello. Это для примера. В реальности данные обычно берутся со страницы, например из формы.

url путь к PHP файлу-обработчику
type тип передачи данных. В нашем случае POST
data какие данные передаем (указываем переменную)
success функция вывода результата запроса при успешной обработке
error функция вывода ошибки работы скрипта

И теперь давайте создадим тот самый файл func.php с незамысловатым содержанием:

< ?php $txt = $_POST['txt']; echo $txt;

результат работы Ajax запроса на сервер

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

И PHP код для обработки запроса и вывода результата:

$func = $_POST['func']; if ($func === 'func_data')

Передача переменных из Javascript в PHP

В итоге мы получаем следующее:

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

Читайте также: