페이지에 관한 지난번 드린 질문에 추가질문을 드립니다.
본문
위 사이트에 대해 질문을 했었는데요...
(http://sir.co.kr/qa/?wr_id=49935&sfl=mb_id%2C1&lstx=kshajiny)
제가 어떻게 하고 싶냐면....
아래 그림을 보시면 헤더부분과 푸터부분은 수정없이 그대로 두고,
컨텐츠 부분만 따로 list.html 페이지에 나열, 정리해놓고
(내용이 추가 될 때마다 list.html에 추가를 하여, 새로 등록하는 내용을 위로 오도록 하여)
riceball.html에서 list.html를 불러와서 10개씩 추출, 표시되도록 하고 싶습니다.
10개가 넘어가면 물론 다음페이지로 넘어갈 수 있도록...
이런게 프로그램으로 가능한 것인가요?
자바스크립트..?
답변 주실 분들께 미리 감사말씀 드립니다 ㅠ ㅠ
페이지 표시는 이전페이지 다음페이지가 아니고 1,2,3,4 등의 숫자 나열도 가능합니다.
답변 3
제가 봤을땐, 이미 사이트가 구축되어 있는 그대로 쓰시는것이 좋을듯 합니다.
그러나 굳이 바꾸자 한다면, 배열을 이용해서 할수 있다고 말할수 있습니다.( 많이 어려워요. )
먼저 html 에서 php 문법을 사용할수 있는지부터 확인해 보세요.
html 문서에서
<?php
echo "123";
?>
적으셔서, 브라우저 에서 확인해 보시면
<?php echo "123"; ?>
이렇게 출력되면은 html 문서에서 php를 사용할수 없는 환경입니다. ( 할수가 없어요. 그냥 포기해야 되요... )
그러나 123 이렇게 출력되면 html 문서에서 php를 사용할수 있는 환경이에요.
php를 사용할수 있는 환경이라면
예를 들어서 배열을 선언합니다.
$list = array();
$list[0] = '<div class="easylist atype">
<div class="box_center_img"><img src="../common/img/easy/riceball/pic17.jpg" alt="大根の漬物玄米おむすび"></div>
<div class="username heightLine-group1" style="height: 140px;">
<h4 class="riceballtitle">大根の漬物玄米おむすび</h4>
<p class="note">大根の漬物2種類を使った漬物玄米おむすびです。<br>大根の田舎漬け2枚と鮮やかな黄色のたくあん3枚を細かく角切りにして、<a href="../products/category06/item01.html" class="linkcolor">ぷちっともち玄米</a>と白米を1:1で炊いたご飯に混ぜ込みました。<br>1個にはのりを巻いてみましたよ♪</p>
</div>
</div>';
$list[1] = 'html1';
$list[2] = 'html2';
$list[3] = 'html3';
$list[4] = 'html4';
$list[5] = 'html5';
$list[6] = 'html6';
$list[7] = 'html7';
$list[8] = 'html8';
$list[9] = 'html9';
$list[10] = 'html10';
$list[11] = 'html11';
$list[12] = 'html12';
배열은 key => value 형식으로 되어 있는데요.( key 는 index 라고도 합니다 )
$list[12] = 'html12';
key 는 12 이고 value 는 html12 입니다.
한 페이지당 10개씩 출력한다고 가정한다면
riceball.html 페이지에서는
key가 12 ~ 3 까지 value 를 출력할수 있구요.
rsort($list); //배열을 역순으로 정렬
$list = array_slice($list, 0, 10 ); //배열 범위를 잘라온다. 인덱스가 0인것 부터 10개까지
foreach( $list as $v){
if( empty($v) ) continue;
echo $v;
}
$list[12]
$list[11]
$list[10]
$list[9]
...
...
$list[4]
$list[3]
riceball_2.html 페이지에서는
key가 2~0 까지 value 를 출력할수 있습니다.
(
위의 php 코드에서
$list = array_slice($list, 10, 10 ); <<< 이렇게 바꾸면 아래 형식으로 출력됩니다.
)
$list[2]
$list[1]
$list[0]
일단은 html 문서에서 php가 작동 되는지 부터 확인해 보세요.
!-->!-->지금은 페이지별로 각각 헤더부터 내용, 푸터까지 하나의 html 파일로 만들어 놓으셨다는 말씀이신가요..
저는 보통 php로 내용을 다 짜버려서 ㅎㅎ
html에서도 <? include 'top.htm'; ?> 이렇게 위에 헤드 불러오고
아래에 푸터 불러오고 하면 관리하기 쉬울거 같은데요
저번에 물어보신게 이걸 물으신거였군요ㅎㅎ
위에 thisgun 님 답변처럼 하면 되는데 php 를 모르신다고 하셨으니..어려울 듯 보이네요.
어쨋든 저도 작성한 코드 남겨드립니다.
[code]
<?
// 현재페이지, 총페이지수, 한페이지에 보여줄 행, URL - 그누보드 함수
function get_paging($write_pages, $cur_page, $total_page, $url, $add="")
{
$str = "";
if ($cur_page > 1) {
$str .= "<a href='" . $url . "1{$add}'>처음</a>";
}
$start_page = ( ( (int)( ($cur_page - 1 ) / $write_pages ) ) * $write_pages ) + 1;
$end_page = $start_page + $write_pages - 1;
if ($end_page >= $total_page) $end_page = $total_page;
if ($start_page > 1) $str .= " <a href='" . $url . ($start_page-1) . "{$add}'>이전</a>";
if ($total_page > 1) {
for ($k=$start_page;$k<=$end_page;$k++) {
if ($cur_page != $k)
$str .= " <a href='$url$k{$add}'><span>$k</span></a>";
else
$str .= " <b>$k</b> ";
}
}
if ($total_page > $end_page) $str .= " <a href='" . $url . ($end_page+1) . "{$add}'>다음</a>";
if ($cur_page < $total_page) {
$str .= " <a href='$url$total_page{$add}'>맨끝</a>";
}
$str .= "";
return $str;
}
$content = array(
array('img0','title','memo'), //새로 추가하는건 이줄 복사 후 위쪽에
array('img1','title','memo'), // 이미지경로, 상품이름, 메모내용
array('img2','title','memo'),
array('img3','title','memo'),
array('img4','title','memo'),
array('img5','title','memo'),
array('img6','title','memo'),
array('img7','title','memo'),
array('img8','title','memo'),
array('img9','title','memo')
);
$total_count = count($content);
$page_mod = 6; //페이지별 나오는 갯수
$page_num = 10; //페이지 번호 출력 갯수
$total_page = ceil($total_count / $page_mod); // 전체 페이지 계산
if (!$page) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $page_mod; // 시작 열을 구함
$list = array_slice($content, $from_record, $page_mod);
$list_count = count($list);
?>
<style>
.easylist{float:left; width:200px; border:1px solid #ccc;}
.pagenavi{clear:both;}
</style>
<div style="width:420px;">
<? for($i=0; $i<$list_count; $i++) { ?>
<div class="easylist atype">
<div class="box_center_img"><?=$list[$i][0]?></div>
<div class="username heightLine-group1">
<h4 class="riceballtitle"><?=$list[$i][1]?></h4>
<p class="note"><?=$list[$i][2]?></p>
</div>
</div>
<? }
$write_pages = get_paging($page_num, $page, $total_page, "?page=");
?>
</div>
<div class="pagenavi">
<ul>
<li><?echo $write_pages;?></li>
</ul>
</div>
[code]
배열+그누보드 기본 함수 로 해봤습니다~
http://qhrtm.web-bi.net/test3.php