Как в javascript вставить php
Перейти к содержимому

Как в javascript вставить php

  • автор:

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

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

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

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

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

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

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

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

Мы определили в JS новую переменную и назвали ее username . Затем присвоили этой переменной JS PHP переменную $username , повторив ее. Естественно, переменная $username должна быть определена ранее на странице выше данной строки.

Обратите внимание, что вокруг кода PHP , который выводит $username , мы использовали двойные кавычки ( » ) как при объявлении переменной в JS . Если переменная PHP является числом, то кавычки использовать не нужно. Но убедитесь, что вы правильно использовали кавычки, потому что строка вывода также может содержать кавычки, и это разобьет код JS .

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

Также JS код может храниться во внешнем файле ( например, script.js ), связанном со страницей HTML . Например, если вы хотите передать значение переменной времени ( в секундах ) в таймер JS , можно использовать следующий код:

Код во внешнем файле JS ( script.js ):

В приведенном выше коде мы сначала инициализируем значение PHP переменной $seconds переменной JS seconds . После этого переменная становится доступной в DOM , и подключаемый скрипт ( script.js ) может использовать ее. В приведенном выше примере пользователь перенаправляется на главную страницу после установленного промежутка времени.

Совет : Убедитесь, что в PHP и JavaScript вы определили переменные до того, как используете их в коде. Иначе вы получите сообщение об ошибке » undefined variable «, и код работать не будет.

Включить PHP в файлы JavaScript (.js)

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

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

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

10 ответов

7 лет спустя обновление: Это ужасный совет. Пожалуйста, не делайте этого.

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

Если вы пытаетесь вызвать функции, вы можете сделать это следующим образом

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

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

Если вы ДОЛЖНЫ использовать PHP для генерации ваших файлов JavaScript, пожалуйста, используйте чистый PHP для создания всего JS файла. Вы можете сделать это, используя обычный .PHP файл точно так же, как обычно вы выводите html, разница заключается в настройке правильного заголовка с использованием функции заголовка PHP, так что правильный тип mime возвращается в браузер. Тип mime для JS обычно » application/javascript«

Немного измененная версия, основанная на Blorgbeard, для легко ссылающихся ассоциативных массивов php для литералов объектов javascript:

Файл PHP (*.php)

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

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

Файл Javascript (*.js)

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

PHP и JS несовместимы; вы не можете просто включить функцию PHP в JS. Вы, вероятно, захотите сделать AJAX Запрос от JavaScript и отправить JSON с использованием PHP.

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

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

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

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

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

некоторый файл .php 1:

или просто эхо-сигнал script, например

Файл 2: somejsfile.js:

Файл 3 myhtml.html:

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

Курсы javascript

Здравствуйте!
Ситуация следующая: есть файл jquery.prettyPhoto.js, и в этом файле находится html структура всплывающего окна:

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

Кнопки соцсетей а данном плагине определяются конфигурацией. Если вам нужно добавить к этим кнопкам свою, которая определяется неким условием на сервере, то кроме сервера ее никто в код не добавит. Запрашивать .js файл при этом совсем не обязательно как

это может быть запрос к php-файлу, который отдаст серверу данный скрипт, добавив в него кнопку:

А как мне это практически реализовать?
вот есть у меня в файле jquery.prettyPhoto.js такая строчка:

..если я меняю html(facebook_like_link) на html(‘12345678’) то у меня в лайтбоксе отображается 12345678.. а что мне нужно вставить что бы отобразился результат действия php
Извиняюсь, что так неграмотно все объясняю и спрашиваю. но очень надо — третий день уже ничего не могу сделать ((

Ну я же писал как. Заменить в моем примере строку 2 на

А вывод (в примере строка), перенести в файл js (строка 3)

Но это будет неправильно — facebook_like_link, это все определенные в плагине соц. кнопки. А надо html-код своей кнопки добавить к html-коду определенных.

Вызов функции php из JavaScript

Есть ли способ запустить функцию php через функцию JavaScript?

Если использовать что-то вроде этого:

<script type=»text/javascript»>

function test() <

document.getElementById(«php_code»).innerHTML font-size: 14px; color: #8f0000; display: table-row-group;» dir=»ltr»> query(«hello»);

?>»;

>

</script>

<a href=»#» style=»display:block; color:#000033; font-family:Tahoma; font-size:12px;»

onclick=»test(); return false;»>Тест</a>

<span >

</span>

Я пытаюсь запустить функцию php query(«hello») , когда нажимаю на ссылку «Тест», которая вызывает функцию php.

Ответ 1

Ваша страница загружается, и вы добавляете событие к элементу. Когда пользователь вызывает событие, например, кликая по ссылке, Javascript использует объект XMLHttpRequest для отправки запроса на сервер.

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

Вы можете сделать это «вручную» с помощью простого Javascript или использовать jQuery. В зависимости от размера вашего проекта и конкретной ситуации , может быть проще использовать простой Javascript.

Обычный Javascript

В этом очень простом примере мы отправляем запрос, когда пользователь кликает по ссылке. Сервер будет генерировать некоторый контент, в данном случае «hello world!». И будет генерироваться HTML-элемент с идентификатором output .

JavaScript

// обработчик события по ссылке, который отправляет запрос

function getOutput() <

getRequest(

‘myAjax.php’, // URL на PHP файл

drawOutput, // Обработчик успешного завершения операции

drawError // Обработчик ошибки

);

return false;

>

// Обработчик отображения ошибки

function drawError() <

var container = document.getElementById(‘output’);

container.innerHTML = ‘Ошибка!’;

>

// Обработчик успешного завершения операции

function drawOutput(responseText) <

var container = document.getElementById(‘output’);

container.innerHTML = responseText;

>

function getRequest(url, success, error) <

var req = false;

try <

req = new XMLHttpRequest();

> catch (e) <

try <

req = new ActiveXObject(«Msxml2.XMLHTTP»);

> catch(e) <

try <

req = new ActiveXObject(«Microsoft.XMLHTTP»);

> catch(e) <

return false;

>

>

>

if (!req) return false;

if (typeof success != ‘function’) success = function () <>;

if (typeof error != ‘function’) error = function () <>;

req.onreadystatechange = function() <

if(req.readyState == 4) <

return req.status === 200 ?

success(req.responseText) : error(req.status);

>

>

req.open(«GET», url, true);

req.send(null);

return req;

>

<a href=»#» onclick=»return getOutput();»>Тест</a>

<div >Ожидание ответа</div>

С библиотекой jQuery и т. п.

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

Используя HTML и PHP, вот скрипт с jQuery:

// Обработчик события

function getOutput() <

$.ajax( <

url:’myAjax.php’,

complete: function (response) <

$(‘#output’).html(response.responseText);

>,

error: function () <

$(‘#output’).html(‘Ошибка!’);

>

>);

return false;

>

Ответ 2

Единственный способ запустить PHP из JS — это AJAX. Вы можете отправить данные на сервер (например, используя GET /ajax.php?do=someFunction), а затем в ajax.php:

function someFunction() <

echo ‘Ответ’;

>

if ($_GET[‘do’] === «someFunction») <

someFunction();

>

После этого перехватите ответ с помощью JS (используя jQuery для выполнения запросов AJAX).

Возможно, вам понадобится какой-то формат ответа. Можно использовать JSON или XML, но JSON легко использовать с JavaScript. В PHP вы можете использовать функцию json_encode($array) , которая получает массив в качестве аргумента.

Мы будем очень благодарны

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

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

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