Загрузка динамического сгенерированного php javascript

javascript php jquery ajax

253 просмотра

3 ответа

34 Репутация автора

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

Я могу успешно загрузить код JavaScript:

var myscript = document.createElement('script');
myscript.src = "modules/mymodule.js";
document.head.appendChild(myscript);

Моя проблема в том, что в моем коде JavaScript есть некоторые зависящие от языка переменные, которые я генерирую php. Есть ли способ запустить php в моем файле javascript перед динамической загрузкой, или это слишком поздно? Может быть, используя AJAX?

Автор: Qaisa Источник Размещён: 18.07.2016 12:00

Ответы (3)


0 плюса

150 Репутация автора

Я думаю, что вы должны отправить имена переменных и некоторую дату в ваш php документ. затем манипулируйте этими именами переменных в своем коде, а затем создайте правильный код JavaScript. Вы должны использовать AJAX для отправки имен ваших переменных.

Автор: Sasan Farrokh Размещён: 18.07.2016 12:05

1 плюс

570 Репутация автора

Решение

Для людей, которые смотрят на этот ответ; пожалуйста, не делай этого . Запускайте файлы PHP только через интерпретатор PHP. Это ненужный риск для безопасности.

В зависимости от вашего веб-сервера, запуск PHP на файлах JavaScript так же прост, как и изменение конфигурации вашего веб-сервера.

Следуйте инструкциям по этой ссылке: http://www.plus2net.com/php_tutorial/php5-iis7-configuration.php

Однако, когда вам будет предложено ввести * .php , введите * .js .

При этом все ваши файлы JavaScript будут запускаться через интерпретатор PHP.

Автор: Carey Размещён: 18.07.2016 12:07

0 плюса

2228 Репутация автора

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

MyScript.php

<?php
  $number = 5;
  echo "var number = {$number}"
?>

index.html

<html>
<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
  <script>
    function loadScript(url){
      $.getScript( "MyScript.php", function( data, textStatus, jqxhr ) {
        console.log( number ); // 5
      });
    }
  </script>
</head>
</html>
Автор: Dustin Poissant Размещён: 18.07.2016 12:18
Вопросы из категории :
32x32