使用JQuery和CodeIgniter的实时通知


Live Notifications using JQuery and CodeIgniter

我使用CodeIgniter,基本上我有一个包含伪数据的表,我使用jQuery返回这些数据。

我通过:

控制器:

class Notifications extends CI_Controller{
        function getAlerts(){
            $query = $this->db->query("SELECT ID, subject, message, readMessage FROM data WHERE readMessage = 0");
            $result = $query->num_rows();
            if($result > 0){
                return $result;
                echo $result;
            }   
        }

标题脚本:

<script type="text/javascript">
      $(function() {
        getMessageCount1();
      });
      function getMessageCount1() {
        $('div#alertsfrommydb').load('<?php echo base_url(); ?>notifications/getAlerts').fadeIn();
        setTimeout("getMessageCount1()", 10000);
      }
   </script>

以及这样的视图:

<div id="alertsfrommydb">
    </div>

在同一个控制器中,我有一个名为showAlerts()的方法,它打印一个表,并显示每10秒刷新一次的消息,使用上述方法可以很好地工作。

此外,我有一个名为notifications.php的方法,我将其加载到我的控制器中,这样我就可以简单地在我的视图中键入:

print_r($this->notifications->getAlerts());

查询显示我的结果很好,即"6",意味着我有6条未读消息。

所以我的论点是,查询是有效的,那么为什么它不能使用jQuery方法呢。

虽然我的查询有效,但我有一种直觉,它有一些不正确的地方,哈哈,希望有人能帮忙。

感谢

不,你做错了!codeigniter中的ajax调用看起来像这样:

function getMessageCount1() {
$.ajax({
     type: 'POST',
     url: '<?php echo base_url()."/notifications/getAlerts"?>',
     data: { NumberOfAlerts:result of your query }, 
     success:function(response){
        $('#alertsfrommydb').html(response);
     }
  });
}