2011-12-09 64 views
0

如何使用javascript獲取我的會話數據。加載php文件以使用javascript獲取我的會話

首先我打開我的PHP文件(www.sample.com/index.php)

的index.php

<? $_SESSION['user'] = "carlo34";?> 

<script>var data = '<?php json_encode($_SESSION['user']) ?>';</script> 

然後我打開我的窗口小部件(窗口小工具7)

然後我有一個函數

test.js

$.get('index.php', function(data)){ 

alert(data); 

}); 

但它沒有提醒任何人。

///// 感謝這是一個有用的提示,但對我的情況仍然沒有奏效。我剛剛陳述了一些細節,對此感到遺憾。我顯示在客戶端上我的會話變量,我有一個腳本,將加載域上的另一個腳本

my.js(客戶端) 這裏將加載我的腳本

var url = "http://www.sampledomain.com/test.js"; 
var script = document.createElement('script'); 
script.src = url; 
document.head.appendChild(script); 

測試。 js(域側)

$.get('index.php',function(data)){ 

alert(data); 
} 

回答

3

你做錯了。首先,不要將PHP數據直接回應到JavaScript中。生成JS語法錯誤並殺死其他Javascript代碼非常容易。

<script>var user = <?php echo json_encode($_SESSION['user']) ?>;</script> 

使用json_encode可以保證您的語法正確無誤,無論存儲在該變量中的是什麼。

除此之外,一旦你做到了這一點回音,你不需要做任何AJAX調用,該值現在是JS代碼至於瀏覽器而言,你只是做:

alert(user); 

對於實際的AJAX響應,按照您想要處理的方式,您不輸出任何<script>標籤等。對於一個簡單的「做一個請求,並得到一個字符串回來」,你有你的PHP腳本做:

<?php 
    echo 'this is some data'; 
?> 

,並在JS方面:

$.get('script.php', function(data) { 
    alert(data); 
}); 

會彈出一個警告框, 「這是一些數據」。如果您輸出<script>標籤,然後執行相同的提醒,您將在提醒中得到<script>this is some data</script>等...