如何在分页中使用ajax获取数据?

时间:2015-07-19 09:26:05

标签: javascript php jquery ajax

我想使用ajax get方法从页面获取3个数据。

javascript是

<script type="text/javascript">
  var busy = false;
  var limit = 15
  var offset = 0;
  var id = 150;

  function displayRecords(lim, off) {
    $.ajax({
      type: "GET",
      async: false,
      url: "s.php",
      data: "limit=" + lim + "&offset=" + off,
      cache: false,
      beforeSend: function() {
        $("#loader_message").html("").hide();
        $('#loader_image').show();
      },
      success: function(html) {
        $("#results").append(html);
        $('#loader_image').hide();
        if (html == "") {
          $("#loader_message").html('<button class="btn btn-default"    type="button">No more records.</button>').show()
        } else {
          $("#loader_message").html('<button class="btn btn-default"  type="button">Loading please wait...</button>').show();
        }
        window.busy = false;


      }
    });
  }

  $(document).ready(function() {
    // start to load the first set of data
    if (busy == false) {
      busy = true;
      // start to load the first set of data
      displayRecords(limit, offset);
    }

    $(window).scroll(function() {
      // make sure u give the container id of the data to be loaded in.
      if ($(window).scrollTop() + $(window).height() >  $("#results").height() && !busy) {
         busy = true;
        offset = limit + offset;
        // this is optional just to delay the loading of data
        setTimeout(function() { displayRecords(limit, offset); }, 500);
        // you can remove the above code and can use directly this function
        // displayRecords(limit, offset);
      }
    });

  });

 </script>

和s.php是

$limit = (intval($_GET['limit']) != 0 ) ? $_GET['limit'] : 10;
$offset = (intval($_GET['offset']) != 0 ) ? $_GET['offset'] : 0;
$id = $_GET['id'];
echo $id;

但是我无法获得id的值,每次我尝试新方法出错或显示错误时,php文件都不会使用ajax获取id值。但它会完美地获得限制和偏移的值。限制和偏移都不是常数值,但id是常数。

我该如何解决这个问题??

3 个答案:

答案 0 :(得分:1)

您无法获取$ id的值,因为它未在ajax请求中发送。

data: "limit=" + lim + "&offset=" + off + "&id=" + id,

您可能想要在数据字符串中添加id。它现在应该工作。

答案 1 :(得分:0)

试试:

<script type="text/javascript">
window.onload=function(){
    var auto = setTimeout(function(){ autoRefresh(); }, 100);

    function submitform(){
      alert('test');
      document.forms["myForm"].submit();
    }

    function autoRefresh(){
       clearTimeout(auto);
       auto = setTimeout(function(){ submitform(); autoRefresh(); }, 10000);
     }
   }
   </script>

答案 2 :(得分:0)

您的id是一个变量,您需要将其作为下面的参数之一传递给请求。

data: {
    'limit': lim,
    'offset': off,
    'id': id
}

避免手动编码查询字符串,因为jQuery会自动为您执行以下操作:

data: "limit=" + lim + "&offset=" + off + "&id=" + id