我知道我的问题很奇怪,但这是我的情况。我用
打电话给 javascript <script src="js/jscript.php"></script>
另一方面,我在jscript.php中编写javascript
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Content-Type: text/javascript");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Pragma: no-cache");
?>$(document).ready(function(){
....
....
....
alert('hello world!');//all my javascript stuff
<?php
echo $_SESSION['user_id']; //echo nothing
echo $_SESSION['user_email']; //echo nothing
?>
});
然后我测试了我的浏览器,文件调用和alert('hello world!')
这样的调用没有问题但是直到我尝试从jscript.php访问会话变量,它全部为空..我确实正确设置了这些变量
答案 0 :(得分:1)
我不确定这是否可行。
我认为更好的方法是对PHP页面进行ajax调用,以任何你想要的形式获取数据(json,或者只是echo $ var ...),然后用它做一些事情。
ex with jquery:
<script>
$.ajax({
url: 'mypage.php',
}).done(function(msg) {
// Do something with msg here
});
</script>
和mypage.php可能像:
<?php
$response = array();
$response['user_id'] = $_SESSION['user_id'];
$response['user_email'] = $_SESSION['user_email'];
echo json_encode($response);
?>
当进行ajax调用时,php页面将创建一个数组,用你需要的会话变量填充它,并用json_encode以json形式将它返回到你的脚本。 你可以将它作为var .done方法获得,并用它做任何你想做的事。
答案 1 :(得分:0)
添加会话开始jscript.php的一个开始解决了我的问题
session_start();
希望能帮助别人。