2010-02-16 2 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 /> 

메인 페이지입니다 그리고는

$(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); 
     }); 
    }); 
}); 

내가 계산 부분을 넣어 시도 JS 스크립트 (jquery.pagination.js)입니다 'pagination_data.php'파일에서 스크립트를 실행하면 버튼이나 링크를 클릭하여 해당 페이지로 이동하면 모든 것을 생성하지만 작동하지 않습니다.

이렇게하면 좋은 방법을 찾는 데 도움이 될 것입니다. 감사.

답변

1

페이지 생성 코드는 괜찮습니다. 사용중인 고정 쿼리가 변경되어야합니다.

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

당신이 어떤 필터에 의해 조정 올바른 쿼리를 전달할 수 있도록 나는 $sql 매개 변수를 함수로 매김 코드를 변경 제안 또는 필터 :

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

감사합니다. 매우 도움이되었습니다. –