Как передать значение PHP во внешний файл JavaScript - PullRequest
1 голос
/ 06 марта 2012

Я пытаюсь передать мои переменные с главной страницы во внешний файл JS.Пожалуйста, смотрите мой код.

Главная страница:

<script type="text/javaScript">
$(document).ready(function(){

var add_project_link="<?= base_url().'add_project/show_form'; ?>";
var add_agent_link="<?= base_url().'agent/add_agent';?>";
});

</script>

Внешний JS

 $(document).ready(function(){
    alert(add_project_link);
    alert(add_agent_link);
  });

Я получил:

uncaught referenceError add_project_link не определено.

Я думал, что внешний JS перехватит переменную, объявленную на главной странице.Какие-нибудь мысли?Большое спасибо!

Ответы [ 6 ]

12 голосов
/ 06 марта 2012

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

<script type="text/javascript">
   var site_url = '<?php echo site_url(); ?>';
   var current_url = '<?php echo current_url(); ?>';
</script>
<script type="text/javascript" src="file.js"></script>

Во внешнем файле file.js теперь вы можете использовать site_url в качестве переменной.

5 голосов
/ 06 марта 2012

Возьмите сгенерированные php переменные из документа готовыми.Они недоступны где-либо еще в вашем коде из-за закрытия функции события ready, в которой они находятся

3 голосов
/ 06 марта 2012

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

<input type="hidden" id="hidden_var" value="<?= base_url().'add_project/show_form'; ?>" />

var add_project_link = $('#hidden_var').val();
2 голосов
/ 07 марта 2012

лучший способ - сохранить этот путь в некоторых тегах, таких как

<span id="site_url" style="display:none;"><?php echo site_url(); ?></span>
<span id="current_url" style="display:none;"><?php echo current_url(); ?></span>

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

$('#site_url').html();
$('#current_url').html()
2 голосов
/ 07 марта 2012

Вы просто пишете в заголовке тега

<script type="text/javaScript">    
var add_project_link="<?= base_url().'add_project/show_form'; ?>";
var add_agent_link="<?= base_url().'agent/add_agent';?>";
</script>

Затем загрузите ваш External JS по приведенному выше сценарию

1 голос
/ 06 марта 2012

самое простое, что нужно сделать, это перенести скрипт в тег скрипта на странице php.

Вы можете перейти по пути переменной строки URL, но я думаю, что в этом нет необходимости

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...