如何将PHP值传递给外部JavaScript文件

时间:2012-03-06 15:33:11

标签: php javascript jquery codeigniter parameters

我正在尝试将变量从主页传递到外部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);
  });

我得到了:

  

未捕获的referenceError未定义add_project_link。

我认为外部JS会捕获主页中声明的变量。有什么想法吗?非常感谢!

6 个答案:

答案 0 :(得分:12)

之前调用外部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作为变量。

答案 1 :(得分:5)

将您生成的php生成的变量从文档中取出。由于关闭了

中的就绪事件功能,因此无法在代码中的任何其他位置访问它们

答案 2 :(得分:3)

我要做的是将这些变量存储到以后由JS轻松调用的内容中。

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

var add_project_link = $('#hidden_var').val();

答案 3 :(得分:2)

你只需写入头标记

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

然后在上面的脚本

之后加载外部JS

答案 4 :(得分:2)

最好的方法是将这些路径存储在某些标签中,例如

<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()

答案 5 :(得分:1)

最简单的方法是将脚本放入php页面上的脚本标记

你可以沿着URL字符串变量路由,但我认为这是不必要的