这是我的 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部分将不会被执行(因为退出命令)。但是,由于AJAX的异步特性,index.php不会立即获知上述会话变量的值。我已经尝试了很多但是我没有成功地找到推迟执行 include“index.php”; 的方法。你有什么好主意吗?
谢谢
答案 0 :(得分:0)
问题是PHP代码在Javascript代码执行开始之前完成执行。解决方案是不使用AJAX并在login.php中嵌入check_read_status.php的代码。就这么简单!!