/* css 속성 */
<style>
/* 페이징 */
.paging{margin-left: -1px; margin-top: 15px; text-align: center;}
.paging a{border: 1px solid #BBBBBB; padding:0 5px; min-width: 14px; height: 16px;line-height: 16px; display: inline-block; text-align: center; margin-left: 1px; color:black; font-size: 11px; text-decoration: none;}
.paging a.over{background: #636363; border-color: #636363; color:white;}
.paging a.first_page, .paging a.last_page{padding: 0 10px;}
</style>
/* 서버 페이징 리스트 페이지에 서 호출 */
// 총계, 페이지수, 레코드수
if (!$limit) $limit= 10;
if (!$curp) $curp = 1;
$row = $dbConn->sql_fetch("select count(oi_idx) from $table_name $where");
$total_record = $row[0];
if( $total_record > 0 ) $total_pages = ceil($total_record/$limit);
else $total_pages = 1;
if ($curp > $total_pages) $curp=$total_pages;
$start = $limit*$curp-$limit; // do not put $limit*($page - 1)
if($start < 0) $start = 1;
/* common.php등으로 빠질 함수 */
/* 총레코드, 현재페이지, 제한 레코드 수, 페이징 블럭 수 */
function paging($total_record=1, $current_page=1, $record_num=10, $page_block=10 ){
/* 예외사항 */
if( !$current_page || $current_page < 1 ) $current_page = 1;
if( !$record_num || $record_num < 1 ) $record_num = 10;
if( !$page_block || $page_block < 1 ) $page_block = 10;
/* 총페이지 수 구하기 */
$total_page = ceil($total_record/$record_num);
if( $total_page <= 0 ) $total_page = 1;
/* query String을 그대로 연결해주기 위해서 변수에 담음 */
foreach($_GET as $col => $val){
if( $col != 'curp' && $col != 'limit' && $val != '' ){
$queryString[] = $col.'='.$val;
}
}
$queryString[] = 'limit='.$record_num;
$queryString = implode('&', $queryString);
/* 페이징 블럭 시작, 끝 수 구하기 */
$start_page_block = (ceil(($current_page/$page_block)-1)*$page_block)+1; //시작 블럭(페이징)
$end_page_block = $start_page_block+$page_block; // 마지막블럭(페이징)
/* 이전 버튼 주소 */
$prev_addr = $start_page_block-1;
if( $prev_addr <= 0 ) $prev_addr = 1;
/* 페이징 html 작성 */
$paging.= "<div class='paging'>";
$paging.= "<a href='".$_SERVER[PHP_SELF]."?curp=1&$queryString' class='first_page'><<</a>"; // 처음으로 버튼
$paging.= "<a href='".$_SERVER[PHP_SELF]."?curp=".$prev_addr."&$queryString' class='prev_page'><</a>"; // 이전 버튼
for($i= $start_page_block; $i< $end_page_block; $i++){
/* 총계를 넘어가면 블럭페이징 멈춤 */
if( $i > $total_page ) break;
/* 페이징 오버 여부 */
$class = '';
if( $current_page == $i ) $class = 'class = "over"';
$paging.= "<a href='".$_SERVER[PHP_SELF]."?curp=$i&$queryString' $class>".$i."</a>";
}
/* 다음 버튼 주소가 총계를 넘어간다면 총계가 주소 가 됨. */
if( $end_page_block >= $total_page ) $end_page_block = $total_page;
/* 다음, 마지막 버튼 */
$paging.= "<a href='".$_SERVER[PHP_SELF]."?curp=".($end_page_block)."&$queryString' class='next_page'>></a>";
$paging.= "<a href='".$_SERVER[PHP_SELF]."?curp=".($total_page)."&$queryString' class='last_page'>>></a>";
/* 페이지 개수별 보기 */
$paging.="
<script>
$(function(){
$('#pageSelect').change(function(){
location.href = '".$_SERVER[PHP_SELF]."?curp=1&limit='+$(this).val();
}).val('$_GET[limit]');
});
</script>
<select id='pageSelect' style='position: absolute; right: 0;'>
<option value='10'>10개씩 보기</option>
<option value='20'>20개씩 보기</option>
<option value='30'>30개씩 보기</option>
<option value='40'>40개씩 보기</option>
<option value='50'>50개씩 보기</option>
<option value='60'>60개씩 보기</option>
<option value='70'>70개씩 보기</option>
<option value='80'>80개씩 보기</option>
<option value='90'>90개씩 보기</option>
<option value='100'>100개씩 보기</option>
<option value='200'>200개씩 보기</option>
<option value='300'>300개씩 보기</option>
<option value='400'>400개씩 보기</option>
<option value='500'>500개씩 보기</option>
</select>
";
$paging.="</div>";
echo $paging;
}

'프로그램 > PHP' 카테고리의 다른 글
디비연동이 필요한 셀렉트박스 함수로 지정 (0) | 2014.12.01 |
---|---|
코드이그나이터 index.php 삭제 (0) | 2014.12.01 |
phpexcel 예제 (0) | 2014.12.01 |
excel 파일 읽기 (0) | 2014.12.01 |
파일 다운로드 예제 (0) | 2014.12.01 |