通过服务器端数据(Ajax)进行客户端分页

时间:2012-02-15 14:07:32

标签: php mysql json jquery

我有3个文件index.php,.js文件和a.php文件。我通过js(jquery)文件向a.php发出了ajax请求。我在html中获得响应,(在1 html响应中)有r 3个div但我想一次显示一个div。然后单击下一个按钮next div,它位于相同的html响应中。它通过服务器端数据(从1个AJAX获得)基本上是客户端分页。但我无法在索引页面中逐个处理3个div。

1。 请求去了 -

<script>
$(document).ready(function(){
 showitem(id);
}); 
</script>
  1. 处理简单查询。

    function showitem(id){

    $.ajax({    
        type    : "POST",
        cache   : true,
        //dataType: "json",
        url     : "a.php",
        data    : {
                    proid:id
                  },                
        success: function(data) {
    
            $("#match_item_display").html(data);// This is span in index.php
    
        }
    });
    

    }

  2. 3。 在响应(比如说)中,我得到了HTML Divs形式的9个元素(在这种情况下为3),我想一次显示3个。

    $start=0; $end=6;
        for($d=0;$d<$len;$d++)
        {   
            if($end>$count)
            {
                $end = $count;
                match_pro("Closley Match", array_slice($recent_arr, $start, $end),$d);
            }
            else 
            {
                match_pro("Closley Match", array_slice($recent_arr, $start, $end),$d);
                //break;
            }
            $start=$end; $end=$end+6;
        }
    

    它返回3 Divs作为一个反应...

    1. 显示 - 下一个和上一个按钮。
    2. 摘要 - &gt; 1-ajax请求,一些HTML div作为响应,按一个按钮顺序显示它们。

      我正在进行客户端分页,因为查询一次不能返回超过9-12个响应。所以客户端脚本应该是最佳的。

1 个答案:

答案 0 :(得分:0)

你可以将div放在一个数组中然后返回。 例如:

$response = array(0 => 'div1_data', 1 => 'div2_data', 2=>'div3_data');
echo json_encode('html' => $response); // returning to ajax call

在ajax调用响应中,您可以将其保存到js数组中; 然后用第一个元素更新区域。 在下一个按钮单击更新具有第二个元素的区域... 希望它会有所帮助。

你可以在js中做到:

index = 0;
res_data = [];
$.ajax({    
 type    : "POST",
 cache   : true,
 //dataType: "json",
 url     : "a.php",
 data    : {
            proid:id
          },                
  success: function(data) {
    $(data.html).each(function(k,v){

       res_data.push(v);

    });
    showNext();      
  }
});


function showNext(){
    $("#match_item_display").html(res_data[index]);
    index++;
}

function showPrev(){
    if(res_data[index-1] !== 'undefined'){
        $("#match_item_display").html(res_data[index-1]);
        index--;
    }
}

您可以在加载页面时进行ajax调用。 并将showNext()和showPrev分配给next和prev按钮的onclick事件。