2012-03-06 76 views
2

我想從我的主要頁面的外部JS文件通過我的變量。請參閱我的代碼。如何PHP值傳遞給外部JavaScript文件

主頁:

<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會捕獲主頁面中聲明的變量。有什麼想法嗎?非常感謝!

+0

不要定義jQuery的'$(文件)裏面你的JavaScript變量。就緒(函數(){})。整個觀點是在你調用jQuery的外部文件之前定義它們。看看我的答案。 – hohner 2012-03-07 10:43:47

回答

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作爲變量。

+0

我認爲它'echo',而不是'return'你應該使用,使這個代碼工作 – DoubleYo 2012-03-06 15:46:55

+0

'echo'或'print'將工作 – hohner 2012-03-06 15:50:06

1

做最簡單的事情是把腳本插入腳本代碼PHP頁面

你可以去的URL字符串變量路線上,但它是不必要的,我認爲

4

把你的PHP變量產生出的文件準備好。他們是不是在你的代碼別的訪問anyhwere由於準備事件函數他們是在

3

我會做的是保存這些變量的東西被JS輕易被稱爲後關閉。

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

var add_project_link = $('#hidden_var').val(); 
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> 

然後上面

+0

這就是我。沒有運氣,但。 +1 – FlyingCat 2012-03-07 18:50:43

2

最好的辦法後腳本加載外部JS是存放在一些標記的路徑就像

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