2012-01-17 3 views
3

У меня есть файл JavaScript с жестко закодированной переменной BASEURL, это значение затем используется другими функциями в файле. Я хотел бы, чтобы это значение URL было задано динамически, так что мне не нужно вручную изменять его для разных установок. Можно ли вставить значение переменной PHP в файл JavaScript?Вставка значения переменной PHP в файл Javascript

+0

Да, это возможно. –

ответ

5

Вместо того, чтобы попытаться смешать PHP в файлов JavaScript, вот что я делаю в шаблоне HTML:

<head> 
    <script> 
     var BASEURL = "<?php echo base_url(); ?>"; 
    </script> 
    <script src="/path/to/my_script1.js"></script> 
    <script src="/path/to/my_script2.js"></script> 
</head> 

Это устанавливает переменную и позволяет все ваши встроенные скрипты для доступа к нему. base_url() будет заменен любым методом, который вы используете для получения базового url с помощью PHP.

+0

Можем ли мы сделать в .js файл? –

1

Предположим, у вас есть JS-файл, написанный на лету PHP; file1.php

<?php 
    header('Content-Type: application/javascript'); 
    $var = $_GET['var1']; 
    echo "jsvar = ".$var.";"; 
?> 

стороне клиента исходный код file1.php var1 = 10, то будет

jsvar=10; 
1

Там существует несколько способов:

  1. Загрузите BaseUrl через AJAX, но, возможно, это замедляется, возможно, вам это нужно раньше.

  2. разрешить javascript-файл, проходящий через парсер php. Затем вы можете использовать встроенные эхо.

  3. Самый удобный и простой способ - сделать <script>var baseurl = '...';</script> в html/php-выходе вашей страницы.

+0

Через AJAX? Это ужасно - вы бы это сделали? –

+0

Нет, я бы не хотел, но это возможно. Я бы сделал последний пункт. – Armin

1

Вам нужно будет сделать файл файлом php, а не файлом js. Оттуда вы можете включить любые теги PHP в файл для работы с вашей динамической магией. Ключ, чтобы вся эта вещь работа в заголовках, которые вам нужно будет установить следующим образом:

<?php 
    Header("content-type: application/x-javascript"); 
     echo 'var js_var = ' . $php_var; 
?> 
alert (js_var); 

Этот метод может быть использован для для CSS-файлов, а также.

+0

'application/x-javascript'? 'application/javascript' был стандартным для ** лет **. – Quentin

+1

Спасибо за отзывы! Пошел с решением, предложенным Madmartigan на финише, работает угощение :) –

Смежные вопросы