我正在创建一个仪表板,每次刷新页面时都需要在其中更新通知栏,以便在刷新页面时,必须执行控制器并将其从数据库返回到该页面。
做到这一点的最佳方法是什么?我在onload事件中尝试了一些方法,但是我似乎找不到一种使用它进入控制器的方法
目前我正在尝试: jQuery / Ajax:
$( document ).ready(function() {
$.ajax({
type: 'POST',
url:'<?=base_url('notificacoes') ?>'
}).done(function(e){
console.log(e);
$('#notbadge').html(e);
})
});
控制器:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Notificacoes extends CI_Controller {
function __construct(){
parent::__construct();
$this->load->model('Notificacoes', '', TRUE);
$this->load->model('Viatura', '', TRUE);
$this->load->library('session');
}
public function index(){
$matricula = $this->session->viatura;
$viatura = $this->Viatura_model->read($matricula);
return $viatura;
}
}
HTML徽章:
<span class="badge" id="notbadge"></span>
它不能在控制台上显示我的阵列,为什么?
答案 0 :(得分:1)
要获取每次刷新页面的通知不是一个好主意,您应该为此使用javascript或angular js。尝试这样的事情。
$scope.getNotifications = function () {
$.ajax({
url: "<?php echo base_url() . "dashboard/getNotifications" ?>",
type: 'POST',
dataType: 'json',
success: function (data, textStatus, jqXHR) {
//console.log(data);
$scope.notifications = data;
$scope.total_unread_noti = data.total_unread_noti;
$scope.$apply();
}
});
};
$scope.getNotifications();
setInterval(function () {
$scope.getNotifications();
}, 3000);