【发布时间】:2019-06-09 13:11:47
【问题描述】:
这就是问题所在。我需要使用 AJAX 请求调用“reset.php”脚本并将会话变量重置为初始值。 现在,它看起来像这样:
index.php:
<?php session_start();
$_SESSION['var'] = 0;
$_SESSION['var'] = 1;
?>
<button>reset</button>
<script type="text/javascript">
$("button").click(function() {
$.ajax({
type: "GET",
url: "reset.php",
success: function(){
//some function
}
});
});
</script>
reset.php
<?php session_start();
$_SESSION['var'] = 0;
?>
这不起作用,“成功”运行正常,但会话变量保持不变。可能是什么问题?
【问题讨论】:
-
提交后是否刷新index.php?
-
如果您在
reset.php中回显会话变量并在成功中创建console.log(response)会怎样 -
只有在页面第一次渲染时才会读取会话变量。 AJAX 请求根本不会影响它。如果您需要读取更新的值(这有点多余,因为您刚刚调用了设置显式值)将数据返回给 AJAX 请求。话虽如此,您似乎对客户端和服务器端逻辑之间的区别有点困惑。我建议在该领域进行一些研究。
-
如果您在 reset.php
print_r($_SESSION);中添加 1 行并将 index.php 更改为success: function(response){ console.log(response); } });,则您的代码运行良好 -
@devpro,不,页面必须在不刷新的情况下工作