1

我在将会话变量从一页传递到另一页时遇到问题——仅在一种情况下。问题是有时变量会通过,有时不会。大约 50% 的时间我需要刷新第二页(多次)才能正确读取变量。当它不读取“新”变量时,会使用“旧”会话变量并带来不同的人。我没有“丢失”变量,只是页面没有读取“新”变量。

这是布局:

.............................Page A
...............................|
...............................|
.............................Page B
...............................|
.............__________________|___________________
.............|.................|..................|
___________Page C...........Page D..............Page E

页面 A 是从数据库中取出的行中的人员列表。当您单击一行时,它会“选择”具有此代码的人:

$("#patienttable tr").click(function() {
       var passthis = $(this).find("#localid").html();
       $.post("php/setsessionvariable.php",
                                       {sessionval: passthis}      );
       window.location.href = 'http://www.xxxxxxxx.xxx/xxxxxx/xx/xxxx.php';
});

“patienttable”是人员列表。

“passthis”是人员标识符(来自“localid”)。

“setsessionvariable.php”是设置变量的服务器端 php 文件。

这是设置会话变量的 php 文件(很无聊,嗯?)

<?php
session_start();
$_SESSION['patientidentifier'] = $_POST['sessionval'];
?>

在页面 B、C、D 和 E 中,会话变量由与 HTML 位于同一页面上的 php 代码读取,如下所示;这些是文件顶部的第一行。

<?php
session_start();
$ptidentifier = $_SESSION['patientidentifier'];
...rest of php code to pull data from the db and post it on the page...
...html code...
...javascript code...
...end of page...
  1. 我从来没有遇到过从页面 B 到 C、页面 B 到 D、页面 B 到 E 以及来回移动的问题......从来没有。
  2. 问题总是从页面 A 到 B。

问题:

  1. 有人可以指出我正确的方向来解决这个问题吗?
  2. 你会设置这样的会话变量吗?还是更好的方法?

我提前谢谢你。

4

1 回答 1

0

您在重定向到下一页之前没有完成帖子。如下更改您的代码。然后它将允许您的帖子在重定向到下一页之前完成。

$("#patienttable tr").click(function() {
       var passthis = $(this).find("#localid").html();
       $.post("php/setsessionvariable.php",
                                       {sessionval: passthis} , function (e) {
window.location.href = 'http://www.thedentons.us/easyehr/v2/root.php'
}     );
       ;
});
于 2013-06-28T14:21:13.707 回答