【发布时间】:2012-06-25 03:09:34
【问题描述】:
我有一个页面,其中包含一些用户可选择的选项和一个按钮,单击该按钮会运行 PHP 脚本,然后使用另一个 PHP 文件刷新 div,该文件使用在第一个 PHP 脚本末尾创建的会话变量。如果用户再次按下按钮,选择了不同的选项,则使用新替换的会话变量更新 div。问题是,有时,可能 10 次左右有 1 次会加载旧的会话变量数据。我怀疑第二个 PHP 文件在更新之前太早地捕获了该变量,但我尝试在各个点取消设置会话变量,但没有任何运气。
第一个 PHP 文件:
session_start();
$needle = array();
foreach($_POST['checkboxes'] as $key => $value){
$needle[] = "$value";
}
// code that processes the values from needle and outputs $data
unset($_SESSION['data']);
$_SESSION['data']=$data;
第二个 PHP 文件:
session_start();
echo $_SESSION['data'];
Javascript:
$(".userdata").click(function() {
$.post("first.php", $("form#checkboxes").serialize());
});
$(function() {
$("#button").click(function() {
$("#div").load('second.php')
})
})
【问题讨论】:
-
请显示代码。很难说否则会发生什么。
-
会话是否存储在数据库中?
-
如果你使用session_destroy会发生什么?
-
你能发布涉及的javascript吗?假设您使用的是 Ajax(基于此问题的标签),您应该确保 PHP 脚本在更新 div 的 javascript 之前已完全运行。具体来说,您应该确保更新 div 的 javascript 代码是您链接到调用第一个 PHP 脚本的代码的“成功”ajax 回调的一部分。
标签: php javascript jquery