【发布时间】:2015-07-07 19:18:26
【问题描述】:
这是我的 login.php 文件中存在的一小部分代码,它是用于登录我的系统的表单(用户名-密码):
<script type="text/javascript">
$.ajax({
method:"POST",
url:"check_read_status.php"
});
</script>
<?php
include "index.php";
exit;
?>
而check_read_status.php的代码如下:
<?php
session_start();
if (isset($_SESSION['valid_user']))
{
$db=new mysqli('localhost', 'root','','apeirosto');
if (!($db->connect_errno))
{
$usermail=$_SESSION['valid_user'];
$query="SELECT * FROM INBOX WHERE receiver='$usermail' AND status_read=0";
$result=$db->query($query);
if ($result->num_rows>=1)
$_SESSION['unread_messages']=1;
else
$_SESSION['unread_messages']=0;
}
}
?>
我的问题是我想将会话变量 $_SESSION['unread_messages'] 传递给 index.php(index.php)将创建新的 DOM,因为 login.php 文件的 HTML 部分不会被执行(因为 exit 命令)。但是,由于 AJAX 的异步特性,index.php 不会立即获知上述会话变量的值。我已经尝试了很多,但我没有成功找到推迟执行 include "index.php"; 的方法。你有什么好主意吗?
谢谢
【问题讨论】:
-
任何会话变量都可以立即用于 index.php,因为它可以访问会话。至于延迟,你查过 JavaScript deferred 的吗?