加载php文件,以获得我的会话使用javascript


Load php file to get my session using javascript

如何使用javascript获取会话数据

首先打开php文件(www.sample.com/index.php)

index . php

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

然后我打开我的小工具(windows 7 gadget)

那么我有一个函数

. 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);
}

你做错了。首先,不要将PHP数据直接回显到javascript中。这太容易产生一个JS语法错误,并杀死你的Javascript代码的其余部分。

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

使用json_encode可以保证你得到语法正确的javascript,无论该变量中存储了什么。

除此之外,一旦你完成了这个echo,你不需要做任何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>,等等…