我有一个名为“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']不存在。
感谢您的帮助!
答案 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
});
});
这应该有效