Javascript CodeIgniter-使用setInterval自动从数据库获取数据
在codeigniter中,我希望在不重新加载页面的情况下自动显示数据库中的更改,因此我使用ajax在视图中运行控制器函数。我正在使用Javascript CodeIgniter-使用setInterval自动从数据库获取数据,javascript,php,jquery,ajax,codeigniter,Javascript,Php,Jquery,Ajax,Codeigniter,在codeigniter中,我希望在不重新加载页面的情况下自动显示数据库中的更改,因此我使用ajax在视图中运行控制器函数。我正在使用setInterval反复运行函数,直到控制器函数listen\u auth返回1,视图显示1 视图: 问题是,isAuth变量只会在页面重新加载后更改。。。我做错什么了吗?或者有更好的方法吗?您需要声明$isAuth并在ajax请求中分配其值,因为php变量在没有服务器请求的情况下不会更改其值。服务器“listen\u auth()”中的函数应该不会打印文本 p
setInterval
反复运行函数,直到控制器函数listen\u auth
返回1,视图显示1
视图:
问题是,
isAuth
变量只会在页面重新加载后更改。。。我做错什么了吗?或者有更好的方法吗?您需要声明$isAuth并在ajax请求中分配其值,因为php变量在没有服务器请求的情况下不会更改其值。服务器“listen\u auth()”中的函数应该不会打印文本
public function listen_auth(){
$username = $this->input->post('username');
$isApproved = $this->adminmodel->get_auth($username);
if($isApproved == 1){
echo 1;
} else{
echo 0;
}
}
然后在AJAX请求中从服务器获取答案:
<script>
var username = <?php echo(json_encode($username)); ?>;
function checkAuthStatus() {
setInterval(getStatus, 1000);
}
function getStatus() {
var isAuth = <?php echo(json_encode($isAuth)); ?>;
$.ajax({
url: '<?php echo base_url('auth/listen_auth'); ?>',
type: 'post',
data: {username:username},
success: function(data){
document.getElementById("status").innerHTML = data;
}
});
}
</script>
var用户名=;
函数checkAuthStatus(){
设置间隔(getStatus,1000);
}
函数getStatus(){
var isAuth=;
$.ajax({
url:“”,
键入:“post”,
数据:{username:username},
成功:功能(数据){
document.getElementById(“status”).innerHTML=数据;
}
});
}
console.log(数据)
public function listen_auth(){
$username = $this->input->post('username');
$isApproved = $this->adminmodel->get_auth($username);
if($isApproved == 1){
echo 1;
} else{
echo 0;
}
}
<script>
var username = <?php echo(json_encode($username)); ?>;
function checkAuthStatus() {
setInterval(getStatus, 1000);
}
function getStatus() {
var isAuth = <?php echo(json_encode($isAuth)); ?>;
$.ajax({
url: '<?php echo base_url('auth/listen_auth'); ?>',
type: 'post',
data: {username:username},
success: function(data){
document.getElementById("status").innerHTML = data;
}
});
}
</script>