2016-12-30 81 views
0

我正嘗試創建一個圖片上傳網站。在此,當用戶登錄時,我在php中設置0​​變量。現在,我想檢查$_SESSION['id']是否設置在我的JavaScript文件(general.js)中以執行某些功能。我應該怎麼做呢?如何在javascript中訪問php SESSION變量

回答

5
<?php $session_value=(isset($_SESSION['id']))?$_SESSION['id']:''; ?> 
    <html> 
    <head> 
    <script type="text/javascript"> 
    var myvar='<?php echo $session_value;?>'; 
    </script> 
    <script type="text/javascript" src="general.js"></script> 
    </head> 
    <body> 

    </body> 
    </html> 

在上面的代碼片斷我以前general.js文件在script.It引用將在訪問初始化的全局變量MYVAR存儲到PHP session變量到腳本文件值general.js文件

+0

我無法在general.js – meagler

+0

訪問myvar所以現在的問題是,如果$ _SESSION ['id']被設置,那麼general.js中的代碼工作正常......如果它沒有設置,那麼我的控制檯顯示錯誤「未終止的字符串文字」..出了什麼問題? – meagler

+0

@eagleAtlantis請在上面的答案中找到修改的代碼片段 –

3

一個簡單的例子,請試試這個

<?php 
session_start(); 
$_SESSION['id'] = 12; 

?> 

<script> 
alert(<?php echo $_SESSION['id']; ?>); 
</script> 

你甚至可以使用PHP變量,數組變量,JS像下面

<?php 
    $id= $_SESSION['id']; 
    $data= array('one', 'two', 'three'); 
?> 
<script type="text/javascript"> 
    var idr = '<?php echo $id; ?>'; 
    var datar = <?php echo json_encode($data); ?>; 
</script> 
+0

如果我把<?php session_start(); ?>在我的general.js開始時,一切都停止工作了,我該怎麼辦? – meagler

0

,最好的辦法是echo在JavaScript中的會話ID變量。

<script> 
    var sessionId = "<?php echo $_SESSION['id']; ?>"; 

    // Your javascript code goes here 
</script> 
2

這裏PHP是服務器端執行,JavaScript是客戶端執行。而$_SESSION是一個服務器端構造。因此,您可能無法直接使用JavaScript訪問該變量。您需要將該變量存儲在$_COOKIE中,以便能夠訪問它在客戶端。

你可以得到會話中使用PHP,然後它用在JavaScript的這樣

<?php 
$variablephp = $_SESSION['category']; 
?> 

<script> 
var variablejs = "<?php echo $variablephp; ?>" ; 
alert("category = " + variablejs); 
</script> 

在這裏,您使用的是PHP越來越像會話echo $variablephp,並分配一個值JavaScript變量。

+0

我認爲另一個選擇是將會話保存在文本中,並使用document.getElementById(「text_variable_name」)。value來讀取文本 。 – Rajib