我使用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);
}
});
}