2010-02-16 41 views
0

我正在嘗試使分頁腳本更具動態性,並且需要一些計算頁碼部分的幫助。使腳本更具動態性

我有下面這個腳本來計算使用php的頁面數量,但是我想添加其他按鈕,點擊時會過濾和整理數據,這意味着需要再次計算分頁數字。

我的腳本不允許發生這種情況,所以我想知道是否有更高效/更動態的計算分頁編號的方式,那麼我現在就是這麼做的。

這是最主要的頁面(pagination.php)

<?php 
include('config.php'); 
$per_page = 3; 

//Calculating no of pages 
$sql = "select * from explore"; 
$result = mysql_query($sql); 
$count = mysql_num_rows($result); 
$pages = ceil($count/$per_page) 
?> 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1`` /jquery.min.js"></script> 
<script type="text/javascript" src="jquery_pagination.js"></script> 


<div id="loading" ></div> 
<div id="content" data-page="1"></div> 
<ul id="pagination"> 
<?php 
//Pagination Numbers 
for($i=1; $i<=$pages; $i++) 
{ 
    echo '<li class="page_numbers" id="'.$i.'">'.$i.'</li>'; 
} 
?> 

</ul> 
<br /> 
<br /> 

這裏是JS腳本(jquery.pagination.js)

$(document).ready(function(){ 

    //Display Loading Image 
    function Display_Load() 
    { 
     $("#loading").fadeIn(900,0); 
     $("#loading").html("<img src='bigLoader.gif' />"); 
    } 

    //Hide Loading Image 
    function Hide_Load() 
    { 
     $("#loading").fadeOut('slow'); 
    }; 

    //Default Starting Page Results 
    $("#pagination li:first").css({'color' : '#FF0084'}).css({'border' : 'none'}); 

    Display_Load(); 

    $("#content").load("pagination_data.php?page=1", Hide_Load()); 

    //Pagination Click 
    $("#pagination li").click(function(){ 
     Display_Load(); 

     //CSS Styles 
     $("#pagination li") 
      .css({'border' : 'solid #dddddd 1px'}) 
      .css({'color' : '#0063DC'}); 

     $(this) 
      .css({'color' : '#FF0084'}) 
      .css({'border' : 'none'}); 

     //Loading Data 
     var pageNum = this.id; 

     $("#content").load("pagination_data.php?page=" + pageNum, function(){ 
      Hide_Load(); 
      $(this).attr('data-page', pageNum); 
     }); 
    }); 
}); 

我試圖把的計算部分'pagination_data.php'文件中的腳本,所以當我點擊一個按鈕或鏈接進入該頁面時,它會生成一切,但它不起作用。

因此,找出一個很好的方法來解決這個問題的任何幫助都是很棒的。謝謝。

回答

1

您的頁面生成代碼沒問題,它是使用的需要更改的固定查詢。我建議改變你的分頁代碼到需要一個$sql參數的函數,這樣你可以在任何過濾器調整正確的查詢傳:

function generate_pagination($sql) { 
    include_once('config.php'); 
    $per_page = 3; 

    //Calculating no of pages 
    $result = mysql_query($sql); 
    $count = mysql_num_rows($result); 
    $pages = ceil($count/$per_page) 

    //Pagination Numbers 
    for($i=1; $i<=$pages; $i++) 
    { 
    echo '<li class="page_numbers" id="'.$i.'">'.$i.'</li>'; 
    } 
} 

,然後調用它像這樣:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1`` /jquery.min.js"></script> 
<script type="text/javascript" src="jquery_pagination.js"></script> 

<div id="loading" ></div> 
<div id="content" data-page="1"></div> 
<ul id="pagination"> 
<?php generate_pagination('SELECT * FROM explore'); ?> 
</ul> 
<br /> 
<br /> 

或帶過濾器:

<?php generate_pagination('SELECT * FROM explore WHERE key="value"'); ?> 
+0

謝謝,這是非常有益的! – 2010-02-16 22:51:45