2012-03-23 21 views
-4

如何訪問JavaScript內部的codeigniter會話變量?如果我在純php中創建會話變量,並在javascript中訪問它,它會給我結果,但在codeigniter會話變量的情況下,它會給我語法錯誤。訪問javascript內部的codeigniter會話變量

我用下面的代碼行訪問笨會話變量在我的js文件

var m1 = "<?php echo json_encode($this->session->userdata('max_age')); ?>"; 
+2

這對我來說看起來是正確的。有什麼問題? – 2012-03-23 15:25:54

+0

它給我在下一行的語法錯誤 – 2012-03-23 15:35:39

+3

在下一行發生錯誤?那麼,下一行是什麼? – 2012-03-23 15:39:29

回答

4

「我用下面的代碼行訪問 笨會話變量我js文件


你不能把PHP代碼的.js文件裏面FIL即它不會被解析。您必須將您的代碼放入您的.js文件被調用的PHP文件中。

例如:

<script type="text/javascript"> 
var m1 = <?php echo json_encode($this->session->userdata('max_age')); ?>; 
</script> 
<script type="text/javascript" src="script.js"></script> 
0

正如我在上述評論提到的,問題很可能是由一個空的php回波輸出引起的。你在上面說過,你不會在你的回聲聲明中引用引號。所以,在你的代碼看起來是這樣的:

var m1 = <?php echo json_encode($this->session->userdata('max_age')); ?>; 

如果你的PHP變量$this->session->userdata('max_age')是空的,這可能是一個問題。因爲如果是這樣的話,json_encode會輸出一個空字符串。請在瀏覽器中做了一個「查看源文件」的一下,如果該行看起來是這樣的:

var m1 = ; 

如果是這樣,你找到了你的問題。以上是無效的,並會導致語法錯誤。