var ajax = new Ajax('process.php', {
method: 'post',
data:options,
onComplete: function(data){
alert(data);
}
});
process.php
session_start();
$_SESSION['data'] = 'hello';
echo $_SESSION['data'];
的index.php
session_start();
echo $_SESSION['data']; // return null
运行ajax我得到警报“你好”。好 运行index.php我什么都没得到
我无法获得$ _SESSION ['data'],这是未定义的。为什么?
答案 0 :(得分:0)
如果您不知道ajax工作或不能,您可以这样做: 在process.php中取
file_put_contents('test.txt', 'its work', FILE_APPEND);
如果测试文件创建它意味着您调用该文件 如果没有设置会话,您必须遵守以下规定:
它在会话上写,但如果你想阅读它,你必须再次启动会话阅读 每当您想要从会话
读取时,再次从服务器上的会话文件中获取会话值答案 1 :(得分:0)
两件事:
您可能刚从示例中删除了此代码,但您的mootools代码仅创建了Ajax对象。要让它发送请求,您需要使用请求方法:
的Ajax.Request();
您是否尝试在ajax请求中发送您希望$ _SESSION ['data']等于的值?如果是这种情况,您将查看$ _POST变量以获取您通过Ajax对象发送到服务器的值(因为您已将'post'设置为请求方法)。如果您希望在$ _SESSION中设置您在请求中发送的值,则需要将它们放在process.php中。
试试这段代码(我最了解你要做的事情):
对于javascript / mootools:
var ajax = new Ajax('process.php', {
method: 'post',
data:{'data':'hello'}
});
ajax.request();
在process.php中:
session_start();
$_SESSION['data'] = $_POST['data']; /* $_SESSION['data'] = 'hello'*/
另外,如果您的ajax javascript包含在您回显$ _SESSION ['data']的index.php页面中,那么您需要刷新index.php才能看到对$ _SESSION所做的更改你的ajax请求。