AJAX仅在数据库中的更改时更新 - Codeigniter

时间:2013-03-21 01:01:42

标签: php javascript ajax codeigniter

我正在尝试仅在数据库中更新时更新页面,但我不确定如何执行此操作。

我正在考虑比较存储在数据库中的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);
    }

查看

 <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>

1 个答案:

答案 0 :(得分:3)

有一种简单的方法可以做到这一点。 创建一个会话变量并为其分配最后一个id。而不是在页面上将此会话ID作为隐藏的输入。 现在,当您发送ajax请求时,您可以获取隐藏输入的值并将其发送到控制器函数,您可以在其中查询最后一个ID。如果查询中的最后一个id不等于会话ID,则应该在ajax请求中回显其他明智的回显0.检查响应是否来自控制器并且大于0更改具有新id的页面。比用ajax更新会话ID