Php AJAX仅在数据库中发生更改时更新-Codeigniter

Php AJAX仅在数据库中发生更改时更新-Codeigniter,php,javascript,ajax,codeigniter,Php,Javascript,Ajax,Codeigniter,我试图只更新网页时,他们的更新在数据库中,但我不知道如何做到这一点 我考虑比较存储在数据库中的ID,因为每个ID都是唯一的,所以如果我制作某种表达式,将AJAX存储或拾取的当前数组与数据库中的ID进行比较。但我不确定如何比较ID并检查它们是否是新的更新 任何帮助都将不胜感激 控制器 public function insertJSON() { $this->load->model("values"); $queryresults = $this

我试图只更新网页时,他们的更新在数据库中,但我不知道如何做到这一点

我考虑比较存储在数据库中的ID,因为每个ID都是唯一的,所以如果我制作某种表达式,将AJAX存储或拾取的当前数组与数据库中的ID进行比较。但我不确定如何比较ID并检查它们是否是新的更新

任何帮助都将不胜感激

控制器

public function insertJSON()
    {
        $this->load->model("values");
        $queryresults = $this->values->getDb();

        $id = array();
        $arr = array();
        $arr2 = array();


        foreach($queryresults as $row)
        {
            $id[] = $row->id;
            $arr[] =  $row->post;
            $arr2[] = $row->img;
        }

            $data = array();
            $data[] = $id
            $data[] = $arr;
            $data[] = $arr2;

            echo json_encode($data);
    }
看法


$('#getdata')。单击(函数(){
$.ajax({
url:“”,
async:false,
类型:“POST”,
成功:功能(数据){
//我想我可以做点什么
如果(数据库中的data.change)执行bla bla
变量id=数据[0];
var arr=数据[1];
var arr2=数据[2]
}
})
});

有一种简单的方法可以做到这一点。 创建会话变量并为其分配最后一个id。然后在页面上的隐藏输入上获取此会话id。
现在,当您发送ajax请求时,您可以获取隐藏输入的值,并将其发送到控制器函数,在该函数中您可以查询最后一个id。如果查询中的最后一个id不等于会话id,则应回送其他明智的回送0。在Ajax请求中,检查响应是否来自控制器,它大于0,用新的ID更改页面。使用Ajax < /P>更新会话ID。您应该查看事件驱动的服务器端框架,如SoCKE.IO。您也可以考虑使用WebSooCKS,它也严格依赖于您的情况。如果你有大量的流量,那么考虑<代码> WebSosiks。您也可以使用普通的轮询技术来实现这一点。一个快速的解决方案是将最新的
数据
响应保存到成功函数回调之外的var。然后,将其与当前响应进行比较——如果它们不同,则进行更新。我还没有对它进行足够的研究来说明这是否是最好的方法,所以我将把它作为一个评论。我将对此进行一次尝试
 <script type='text/javascript' language='javascript'>
      $('#getdata').click(function () {
        $.ajax({
          url: '<?php echo base_url().'index.php/welcome/insertJSON';?>',
          async: false,
          type: "POST",
          success: function(data) {

            // thought i could do something like
                   if(data.change in database) do bla bla

            var id = data[0];
            var arr = data[1];
            var arr2 = data[2]

          }
        })
      });
    </script>