我有一个登录表单,其中为每个页面刷新生成唯一键。数据库表包含标志字段。如果它为0则则用户未登录,1表示已登录。因此,如果不刷新页面,我如何每隔5秒检查一次数据库以查看是否设置了标志?
我尝试使用sleep(5)
,但它会阻止页面加载,或者它会睡眠5秒钟然后加载页面。有没有办法实现这个目标?
答案 0 :(得分:1)
您需要有2页:
第1页上的jQuery代码将在不刷新第1页的情况下阅读第2页。然后,您可以使用Javascript更新第1页上的内容。
使用jQuery:
<script>
var tid = setTimeout(checkLogin, 5000);
function checkLogin() {
$.get( "your_check_login_url.php", function( data ) {
alert(data.is_logged_in); // Replace with your own code
});
tid = setTimeout(checkLogin, 5000); // repeat myself
}
</script>
在PHP端返回一个值JSON,否则你的Javascript可以读作真/假。
<?php
$logged_in = TRUE; //Replace with your PHP/MySQL code to check if log in is true
header('Content-Type: application/json');
echo json_encode(
array('is_logged_in' => $logged_in)
);