2015-02-05 28 views
0

我使用的是CodeIgniter,基本上我有一個有虛擬數據的表,並且我使用jQuery來返回這些數據。使用JQuery和CodeIgniter的實時通知

我通過這樣做:

控制器:

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> 

我有一個方法,該方法在t中被稱爲showAlerts()他同樣的控制器打印一張桌子,並顯示我的信息每10秒鐘刷新一次,這使用上述方法完美地工作。

另外我還notifications.php叫的方法和我在我的控制器,然後讓我簡單地在我看來類型加載此:

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

和查詢顯示了我的結果罰款是' 6'表示我有6條未讀消息。

所以我的觀點是,查詢工作,所以爲什麼它不能使用jQuery方法。

雖然我的查詢工作,我有一種直覺感覺有什麼不對的關於它大聲笑,希望有人可以幫助。

謝謝

+0

我沒有看到你的代碼中的任何地方的ajax調用? – 2015-02-05 22:23:23

+0

Erm標題中的腳本?如果這不是ajax,那麼我的道歉,這是什麼? @noob – 2015-02-05 22:30:13

回答

2

不,你做錯了!在codeigniter的阿賈克斯調用看起來像這樣:

function getMessageCount1() { 

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

嗨,感謝您的答覆,我現在編輯我的文章,從ajax更改爲jQuery,僅供參考我已經嘗試過上述方法,並使用腳本加載ajax,仍然沒有運氣:( – 2015-02-05 22:57:58

+0

你可以編輯原始帖子你已經嘗試過與ajax – 2015-02-05 23:13:36

+0

已經這樣做了,我還沒有嘗試過任何與ajax,意識到這一切都是jQuery @noob – 2015-02-05 23:15:34