jQuery $ .POST不工作 - 在$ _SESSION中添加一个变量

时间:2013-10-25 13:50:15

标签: jquery .post

我有一个名为“test.php”的文件,其中包含指向“test2.php”的链接:

<a href="test2.php" id="test">Test</a>

在我的test2.php中,我检查$ _SESSION变量:

<?php session_start();
var_dump($_SESSION);

当我点击“test.php”文件中的链接时,我想在$ _SESSION变量中添加数据,所以这是我的js:

$('#test').on('click', function(e) {
   $.post('test3.php', { myvar : 'myvalue' } );
});

在“test3.php”文件中,我有这段代码:

<?php session_start();
    $_SESSION['myvar'] = $_POST['myvar'];

我不明白为什么它不起作用......在“test2.php”文件中,$ _SESSION ['myvar']不存在。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

test3.php的请求将被取消,因为您没有阻止关注test2.php链接的默认行为。

尝试以下方法;

$('#test').on('click', function(e) {
   $.post('test3.php', { myvar : 'myvalue' } );
   e.preventDefault();
});

然后,您可以在请求完成时重定向到test2.php;

$('#test').on('click', function(e) {
   var that = this;

   $.post('test3.php', { myvar : 'myvalue' } ).done(function () {
       window.location.href = that.href;
   });

   e.preventDefault();
});

答案 1 :(得分:0)

你必须改变一点代码

<a href="javascript:void(0)" id="test">Test</a> 

$('#test').on('click', function(e) {
   $.post('test3.php', { myvar : 'myvalue' } ,function(){
window.location.reload('test2.php');//opening page here

});
});

这应该有效