如何在javascript中调用$ _SESSION

时间:2012-04-20 21:52:54

标签: php javascript jquery ajax

我有两个单独的页面,一个页面用于上传文件,另一个页面用于显示信息。

在imageupload.php页面中,我有以下会话:

$_SESSION['fileImage']['name'] = $_FILES['fileImage']['name'];

我还有一个javascript函数,可以回调javascript函数:

<script language="javascript" type="text/javascript">window.top.stopImageUpload();</script> 

现在在一个单独的页面(QandATable.php)上,我有一个javascript函数,但我的问题是如何在javascript函数中调用上面的$ _SESSION代码,以便我可以将它附加到$('。list') ?

以下是javascript功能:

 function stopImageUpload(success){

var result = '';
if (success == 1){
result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>';
$('.listImage').append('<br/>');
          }
else {
result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
          }

return true;

    }

4 个答案:

答案 0 :(得分:2)

你不能,因为$ _SESSION是服务器端变量,但你可以通过它来访问它。

对于整个会话变量

<script type="text/javascript" >
  var session = <?php echo json_encode($_SESSION); ?>;
</script>

对于会话中的特定变量。

<script type="text/javascript" >
  var session_var = <?php echo json_encode($_SESSION['VAR_NAME']); ?>;
</script>

现在你有一个名为session的js变量与该信息。但是,在大多数情况下,不建议将所有信息输出到公共页面。

答案 1 :(得分:2)

会话变量存储在服务器上。 JavaScript在cliend端执行,所以它对服务器端一无所知。它只知道你传递给它。

要将变量传递给javascript,请使用ajax请求,或者只输出值:

<script>
var sesionValue = <?=json_encode($_SESSION['value']);?>;
</script>

答案 2 :(得分:1)

您应该考虑使用JQuery,因为它使这些类似AJAX的任务变得更加容易。

请参阅我今天写的函数来做类似于你所要求的事情。

这需要一些PHP输出(在调用的success部分返回ajax()。它采用的格式是JSON,它兼容PHP和JavaScript(JSON:JavaScript Object Notation) )。

function viewClientDetails(id) {
    var clientParams;
    clientParams.clientID = id;
    $.ajax({
        url: BASE_URL + '/clients/get-client-details.php',
        type: 'POST',
        data: clientParams,
        dataType: 'JSON',
        success: function(myClient) {
            var name = myClient.name;

            $('td#name').html(name);

        },
        error: function(e) {
            console.log(e.responseText);
        }
    })
}

在我的PHP文件(名为/clients/get-client-details.php)中,我有类似的内容:

<?php
...
$myClient = array('name' => 'Mr Foobar');
print json_encode($myClient);

?>

这只是将我的PHP对象写入JSON格式。

在上面的 JS 代码中,代码将一部分JSON数据插入到一个HTML表 - 数据元素中,其CSS选择器ID为#name,其行为:{{1 }}

道歉,如果这让你更加困惑,我想我会展示你可以尝试一些时间的例子。

这可能对你有所帮助...继续尝试,你会到达那里:)

答案 3 :(得分:0)

你做不到。 $_SESSION是一个PHP变量,该代码在服务器端运行。

您需要将值作为Javascript变量存储在PHP文件的输出中,然后在Javascript中访问该变量。