도와주세요

a태그를 특정 조건에서만 비활성화시키고 싶은데... +사소한 기능 문제

title: 머그잔(명탐정 피카츄)왕뚠뚠돈까스라이츄2019.08.08 16:44조회 수 81댓글 6

  • 6
    • 글자 크기


정주행할 때 메인페이지 넘어가는 게 귀찮아서 이전글/다음글 링크를 만들었고 특정 조건 하(글번호가 0이거나 총 게시물일 때)에서 저렇게 링크 글자가 바뀌게끔 했습니다. 다만 a태그는 여전히 작동하기때문에... 


착한 사람만 보이는 일기 아닙니다 이렇게 빈 페이지가 나옵니다... 


<%
String next="";
String prev="";
 
if (idx == 1) {
     next="마지막 글입니다";
}
else {
     next="다음글";
}
 
if (idx == total) {
     prev ="최근 글입니다";
}
else {
    prev="이전글";
}
%>


여기랑 


<td id="prev" align="center"><a href="view.jsp?idx=<%=idx+1%>&pg=<%=pg%>"><%=prev %></a></td>
<td id="next" align="center"><a href="view.jsp?idx=<%=idx-1%>&pg=<%=pg%>"><%=next %></a></td>


여기가 문제가 되는 부분입니다. 

글자는 바꿨는데 링크는 안되더라고요;; 


리절트셋 닫는거 안에 있는데 왜...... 

아니 스크립트는... 리절트셋 닫는거 밖에 있어서 그랬다 칩시다... 

얘는 대체 왜 이럽니까... 


+이전글이나 다음글 작동시 뭔가 좀 이상한데... 

일기가 지금 407개이고 한 페이지당 15개니까 393번까지가 1페이지고 392번 다이어리는 2번 페이지입니다. 


여기까지는 좋았어요. 


선생님 392번 글은 2번 페이지십니다. 


진짜 2번 페이지입니다... 


이걸 어떻게 해야 할 지 모르겠어요. 

페이징이 어떻게 되는거냐면 


<% final int ROWSIZE = 15; // 한페이지에 보일 게시물 수  
final int BLOCK = 10; // 아래에 보일 페이지 최대개수 1~5 / 6~10 / 11~15 식으로 5개로 고정  
int pg = 1; //기본 페이지값  
if(request.getParameter("pg")!=null) { //받아온 pg값이 있을때, 다른페이지일때  
    pg = Integer.parseInt(request.getParameter("pg")); // pg값을 저장  
    }  
int start = (pg*ROWSIZE) - (ROWSIZE-1); // 해당페이지에서 시작번호(step2)  
    int end = (pg*ROWSIZE); // 해당페이지에서 끝번호(step2)  
    int allPage = 0; // 전체 페이지수  
    int startPage = ((pg-1)/BLOCK*BLOCK)+1; // 시작블럭숫자 (1~5페이지일경우 1, 6~10일경우 6)  
    int endPage = ((pg-1)/BLOCK*BLOCK)+BLOCK; // 끝 블럭 숫자 (1~5일 경우 5, 6~10일경우 10)  
    %>

일단 이렇게 들어가고 


            int sort=1;
            String sqlSort = "SELECT NUM from diary order by NUM desc";
            rs = stmt.executeQuery(sqlSort);
            while(rs.next()){
                int stepNum = rs.getInt(1);
                sql = "UPDATE diary SET STEP2=" + sort + " where NUM=" +stepNum;
                 stmt1.executeUpdate(sql);
                 sort++;
            }
            allPage = (int)Math.ceil(total/(double)ROWSIZE);
             
            if(endPage > allPage) {
                endPage = allPage;
            }
            rs.close();
            String sqlList = "SELECT NUM, TITLE, TIME from diary where STEP2 >="+start + " and STEP2 <= "+ end +" order by step2 asc";
            stmt = conn.createStatement();
            rs = stmt.executeQuery(sqlList);

이부분도 페이징에 관여하는 것 같은데 대체 어떻게 도입을 해야 할 지 참 난감하네요.. 


구조가 어떻게 되는거냐면 지금 407페이지니까 407~393 이런 식으로 15개씩 쪼개고 남는 글이 맨 마지막 페이지가 됩니다. 즉 1, 2번 글 두 개가 마지막 페이지입니다. 

라이츄는 뚠뚠 오늘도 뚠뚠 뚠뚠하죠 뚠뚠 

  • 6
    • 글자 크기
imgur 사용하시는분.... 잘아시는분...질문! (by 홀민) 이거 도메인 사용 가능한 거 맞죠? (by 왕뚠뚠돈까스라이츄)
  • 2019.8.8 18:03

    if(idx == total){

    prev = "view.jsp?idx=" + Integer.toString(idx+1) + "&pg=" + pg;

    }

     

    if문이 나온다는건 JSP 안에서 처리하고 있다는 말일텐데

    JSP 문자열 안에서 JSP 시작태그를 사용해봐야 의미가 없죠

  • @네모
    2019.8.9 00:02

    해결봤네요 ㄷㄷ 어제 뭔가 또 잘못 입력됬던 듯 합니다..

    가장 처음 글과 가장 마지막 글에서는 URL 대신 javascript:void(0)을 불렀어요.

     

    이제 페이징만 어떻게 됐으면 좋겠는데 ㅠㅠ

  • @왕뚠뚠돈까스라이츄
    2019.8.9 11:02

    페이징은 무슨 문제가 있는건지 잘 모르겠네요.

    구현방법을 고민하고 계신거라면

     

    SQL의 LIMIT 문을 한번 알아보세요.

     

    간단하게 설명드리자면,

    SELECT * FROM diary ORDER BY step2 ASC LIMIT 15; -> 0~14번 글 (0부터 15개)

    SELECT * FROM diary ORDER BY step2 ASC LIMIT 15, 15; -> 15~29번 글 (15부터 15개)

    SELECT * FROM diary ORDER BY step2 ASC LIMIT 30, 15; -> 30~44번 글 (30부터 15개)

  • @네모
    2019.8.9 11:08

    아 그게 뭐냐면요... 예를 들어서

     

    1) 400번 글이 1페이지에 있고 399번 글이 2페이지에 있어요.

    2) 400번 글 뷰페이지에서 이전글을 누르면 399번으로 넘어가요

    3) URL 구조가 view.jsp?idx=400&pg=1인데 이 pg가 처음 글을 열렀던 페이지로 고정되어 있어요.. (399번 글이 2페이지면 idx=399&pg=2가 나와야 하는데 idx=399&pg=1로 나옴)

    4) 글 열람이나 수정, 삭제에 문제는 없지만 저 상태에서 목록으로 돌아가기를 누르면 399번 글이 있는 2페이지가 아닌 400번 글이 있는 1페이지로 돌아가요.

     

    이 문제예요.. 목록 페이징은 잘 되고 있어요..

  • @왕뚠뚠돈까스라이츄
    2019.8.9 11:53

    아.

     

    총 게시글수가 425개라고 할 때

     

    425 / 15 = 28.3333 ~= 29

    총 29페이지가 나오겠네요.

     

    그리고 400번째 글은

    400 / 15 = 26.66667 ~= 27

    29 - 27 = 2

    2번째 페이지군요

     

    320번째 글은요?

    320 / 15 = 21.3333 ~= 22

    29 - 22 = 7

    7번째 페이지네요.

     

    이전글 다음글 처리시에는 pn을 위와 비슷한 방식으로 계산하여 넘겨줍시다.

    아니면 400번째글이 해당페이지의 첫/마지막 글인지 아닌지 체크해서 pn 넘길때 +-1 해주는 방법도 있겠네요.

  • @네모
    2019.8.9 13:42

    글이 407개고 현재 28페이지입니다.. db에 글 번호의 보수인 step2라는 컬럼이 있어서 최신 글일수록 숫자가 낮아요. (407번 글의 step2가 1) 이걸 기준으로 페이징을 하는건데 그걸 어떻게 해야 할 지가 난감한거예요.. 글 번호를 나누게되면 페이지가 이상하게 될거고 mod는 나누기 시 나머지를 표시해주는거고...

댓글 달기

번호 제목 글쓴이 날짜 조회 수
공지 사이트 정보 등록에 경고로 변경된 분들 참고하세요.7 마스터 2019.06.19 1093
공지 [중요 공지 포함] 사이트가 복구 되었습니다.42 마스터 2019.06.18 1399
공지 호스팅 신청이 다시 가능합니다.18 마스터 2019.04.18 2178
공지 회원 전용 페이지가 생겼습니다.15 마스터 2018.03.20 8036
공지 [필독] 질문하는 방법6 마스터 2018.02.23 1067
609 Beautifulsoup 로그인 문제1 Hanam09 10시간 전 30
608 부트스트랩 모달의 사이즈를 구해서 사이즈에 맞게 이모지 n개/행을 출력하려고 하는데요.5 이니스프리 15시간 전 44
607 Jquery 사용 시 $(window).load( function() 를 사용하시나요?5 로우지 2019.08.20 40
606 ftp.studyforus.com은 서비스를 중지하신건가요?2 Piedots 2019.08.19 33
605 출첵을 했는데 처리가 제대로 안됐어요! title: 머그잔(명탐정 피카츄)왕뚠뚠돈까스라이츄 2019.08.19 20
604 imgur 사용하시는분.... 잘아시는분...질문!5 홀민 2019.08.18 41
a태그를 특정 조건에서만 비활성화시키고 싶은데... +사소한 기능 문제6 title: 머그잔(명탐정 피카츄)왕뚠뚠돈까스라이츄 2019.08.08 81
602 이거 도메인 사용 가능한 거 맞죠?13 title: 머그잔(명탐정 피카츄)왕뚠뚠돈까스라이츄 2019.08.08 80
601 자바스크립트는 왜 이럴까요...5 title: 머그잔(명탐정 피카츄)왕뚠뚠돈까스라이츄 2019.08.07 51
600 창 크기에 따라서 표의 크기가 달라지는 태그는 없나요?6 title: 머그잔(명탐정 피카츄)왕뚠뚠돈까스라이츄 2019.08.05 71
599 자바스크립트 FormData와 관련된 메서드의 IE 호환성과 관련하여 질문 드립니다 ^^6 이니스프리 2019.08.05 81
598 프로알라 에디터를 사용하면 클라이언트단에서 이미지 리사이징을 할 수 있는가요?6 이니스프리 2019.08.02 67
597 IE11에서 이미지가 깨지는 현상을 해결할 수 있을까요?2 이니스프리 2019.08.02 79
596 야후재팬 메일 이용하시는분 계신가요?2 슬기 2019.07.29 46
595 Composer 설치 가능한 웹호스팅 추천 부탁드립니다4 이니스프리 2019.07.29 48
594 싸이월드 미니홈피 크롤링 관련하여 질문 드립니다 ^^3 이니스프리 2019.07.27 60
593 영상 다운로드 받는 방법이 어디없을까요?6 슬기 2019.07.25 78
592 출석 오류4 Piedots 2019.07.25 49
591 [그누보드] 테스트 메일 보내기가 안되요.6 연우빠 2019.07.23 72
590 사이트 로고 디자인을 의뢰하기 전에 질문 드려요 ^^ 이니스프리 2019.07.21 39
이전 1 2 3 4 5 6 7 8 9 10... 31다음
첨부 (6)
2019-08-08 (6).png
3.27MB / Download 3
2019-08-08 (5).png
3.91MB / Download 3
캡처.PNG
5.5KB / Download 3
캡처.PNG
5.0KB / Download 4
캡처.PNG
5.1KB / Download 4
캡처.PNG
1.20MB / Download 3
서버에 요청 중입니다. 잠시만 기다려 주십시오...