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

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

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

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

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

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

 <script type="text/javascript"> phpVars = new Array(); <?php foreach($vars as $var) { echo 'phpVars.push("' . $var . '");'; }; ?> </script> <script type="text/javascript" src="yourScriptThatUsesPHPVars.js"></script> 

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

 <script type="text/javascript" src="YourFunctions.js"></script> <script type="text/javascript"> functionOne(<?php echo implode(', ', $arrayWithVars); ?>); functionTwo(<?php echo $moreVars; ?>, <?php echo $evenMoreVars; ?>); </script> 
 AddType application/x-httpd-php .js AddHandler x-httpd-php5 .js <FilesMatch "\.(js|php)$"> SetHandler application/x-httpd-php </FilesMatch> 

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

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

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

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

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

Файл PHP (* .php)

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

 <?php $phpToJsVars = [ 'value1' => 'foo1', 'value2' => 'foo2' ]; ?> 

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

 <script type="text/javascript"> var phpVars = { <?php foreach ($phpToJsVars as $key => $value) { echo ' ' . $key . ': ' . '"' . $value . '",' . "\n"; } ?> }; </script> 

Файл Javascript (* .js)

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

 phpVars["value1"] phpVars["value2"] 

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

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

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

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

Статический файл Js – с помощью http://api.jquery.com/jquery.getscript/ или http://api.jquery.com/load/

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

some file.php 1:

 <?php $somevar = "Some Dynamic Data"; ?> $('input').val(<?php echo $somevar?>); 

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

 echo "$('input').val(".$somevar.");"; 

Файл 2: somejsfile.js:

 $("#result").load( "file.php" ); 

Файл 3 myhtml.html:

 <script src="somejsfile.js"></script> 

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

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

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

Таким образом вы можете сделать двойное разрешение файла: «filename.php.js». PHP генерирует JS в этом файле. У меня есть все параметры из БД. Это сработало для меня на xampp.

Не существует безопасного способа включить php файл в js .

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

abc.php

 <?php $abc = "Abc"; $number = 052; $mydata = array("val1","val2","val3"); ?> <script type="text/javascript"> var abc = '<?php echo $abc?>'; var number = '<?php echo $number ?>'; var mydata = <?php echo json_encode($mydata); ?>; </script> 

После use его непосредственно в js file где вы хотите использовать.

abc.js

 function test(){ alert('Print php variable : '+ abc +', '+number); } function printArrVar(){ alert('print php array variable : '+ JSON.stringify(mydata)); } 

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

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