리스트 게시판에서 검색 기능 추가하는데 몇일째 애를 먹고 있습니다.ㅜㅜ

리스트 게시판에서 검색 기능 추가하는데 몇일째 애를 먹고 있습니다.ㅜㅜ

QA

리스트 게시판에서 검색 기능 추가하는데 몇일째 애를 먹고 있습니다.ㅜㅜ

본문

<script>
    function link(){
        var wr_9_value = $('input:radio[name=wr_9]:checked').val();   
        var wr_10_value = $('input:radio[name=wr_10]:checked').val(); 
        var wr_7_value = $('input:radio[name=wr_7]:checked').val(); 
        
        if(wr_9_value == undefined){
            var wr_9_value="";
            alert('조건1 미충족'); // JavaScript 변수 값 확인
            exit(0);        
        }
        
        
        if(wr_10_value == undefined){
            var wr_10_value="";
            alert('조건2 미충족'); // JavaScript 변수 값 확인\
            exit(0);
        }
        
        
        if(wr_7_value == undefined){
            var wr_7_value="";
            alert('조건3 미충족'); // JavaScript 변수 값 확인
            exit(0);
        }        
        
        // URL에 JavaScript 변수 값을 적용하여 이동
        window.location.href = "<?php echo G5_BBS_URL; ?>/board.php?bo_table=tl_land&sca=<?php echo $sca ?>&sop=and&sfl=wr_9=" + encodeURIComponent(wr_9_value) + "&sop=and&sfl=wr_10=" + encodeURIComponent(wr_10_value) + "&sop=and&sfl=wr_7=" + encodeURIComponent(wr_7_value);
    }
</script>

 

 

질문 게시판을 통해 위와 같이 코드를 수정하고 있습니다.

문제는 총3가지 있습니다.

1. 위에서 exit(0); 이 함수가 오류가 납니다.

 

F12로 확인해보면 Uncaught ReferenceError: exit is not defined

이렇게 나오네요. 

오류가 나와서 종료가 되는데 정상적으로 되는게 아니라서 원인을 모르겠습니다.

 

2. window.location.href = "<?php echo G5_BBS_URL; ?>/board.php?bo_table=tl_land&sca=<?php echo $sca ?>&sop=and&sfl=wr_9=" + encodeURIComponent(wr_9_value) + "&sop=and&sfl=wr_10=" + encodeURIComponent(wr_10_value) + "&sop=and&sfl=wr_7=" + encodeURIComponent(wr_7_value);

이 부분으로 검색기능을 좀 응용해서 검색 화면 나타내려고 했는데 조건 2개가 더 붙으니까 검색이 잘안되는듯 합니다.

search 코드에 값을 넣고 해야 하는데 기본 기능은 안건드리고 수정하고 싶어서 위와 같이 했습니다.

 

&query=SELECT * FROM `g5_write_tl_land` WHERE wr_9='조건1' and wr_10='조건2' and wr_7='조건3';

sql_query(&query);

 

이렇게 직접 넣는것도 생각 중인데 위의 결과 쿼리를 게시판 리스트 내용에 나오게 하려면 sql_query를 어떻게 마지막에 넣어야 하는지 모르겠습니다.

 

3. 게시판 카테고리 부분을  input 타입 형태로 변경하고 있습니다.

특정 게시판만 카테고리 부분을 input 타입 형태로 변경하려고 하는데 bbs/list.php 부분 변경안하고

할 수 있는 방안은 없을까요?

<label class="box-radio-input" style="width:100%;">                      
                        <input type="radio" name="wr_7" value="조건3">
                          <span class="qa1 f13">                          
                              조건3
                          </span>
                    </label>

이렇게 나타내고 있는데 카테고리 부분도 이렇게 변경했으면 해서요.

 

질문이 많네요. ㅜㅜㅜ

 

 

 

이 질문에 댓글 쓰기 :

답변 3

1. 위에서 exit(0); 이 함수가 오류가 납니다.

 

F12로 확인해보면 Uncaught ReferenceError: exit is not defined

이렇게 나오네요. 

오류가 나와서 종료가 되는데 정상적으로 되는게 아니라서 원인을 모르겠습니다.

 

답 : 우선 exit(0); 의 역활이 궁금하며 F12로 네트워크쪽에 선언한 .js 파일이 있는지 확인필요

 

2. window.location.href = "<?php echo G5_BBS_URL; ?>/board.php?bo_table=tl_land&sca=<?php echo $sca ?>&sop=and&sfl=wr_9=" + encodeURIComponent(wr_9_value) + "&sop=and&sfl=wr_10=" + encodeURIComponent(wr_10_value) + "&sop=and&sfl=wr_7=" + encodeURIComponent(wr_7_value);

이 부분으로 검색기능을 좀 응용해서 검색 화면 나타내려고 했는데 조건 2개가 더 붙으니까 검색이 잘안되는듯 합니다.

search 코드에 값을 넣고 해야 하는데 기본 기능은 안건드리고 수정하고 싶어서 위와 같이 했습니다.

 

&query=SELECT * FROM `g5_write_tl_land` WHERE wr_9='조건1' and wr_10='조건2' and wr_7='조건3';

sql_query(&query);

 

이렇게 직접 넣는것도 생각 중인데 위의 결과 쿼리를 게시판 리스트 내용에 나오게 하려면 sql_query를 어떻게 마지막에 넣어야 하는지 모르겠습니다.

 

답 : "&sop=and&sfl=wr_10=", "&sop=and&sfl=wr_7=" 는 저런식이 아닌...묶어서 보내야 합니다. 또는 변수명을 바꾸시던지요... "&sop=and&sfl=wr_10=", "&sop2=and&sfl2=wr_7="

 

3. 게시판 카테고리 부분을  input 타입 형태로 변경하고 있습니다.

특정 게시판만 카테고리 부분을 input 타입 형태로 변경하려고 하는데 bbs/list.php 부분 변경안하고

할 수 있는 방안은 없을까요?

 

<label class="box-radio-input" style="width:100%;">                      
                        <input type="radio" name="wr_7" value="조건3">
                          <span class="qa1 f13">                          
                              조건3
                          </span>
                    </label>

이렇게 나타내고 있는데 카테고리 부분도 이렇게 변경했으면 해서요.

 

답 : 같은 형식으로 진행 하셔도 무방합니다.
단, 기존 소스를 지우지 마시고 주석 후 진행하세요

exit(0) 함수는 따로 제가 만든것은 아니고 구글 찾아보니 exit(0), die(0), return, break 처럼 내장된거로 생각하고 사용하였습니다.
script안에서는 사용 못하는 것인지 사용이 안되네요.

search 부분은 소스코드를 많이 수정 안하려고 위와 같이 주소 형식으로 해보았는데 안되네요.
여분필드 값 비교해서 결과값을 게시판의 리스트에 나타내려고 하고 있습니다.

최대한 기본 파일은 수정 안하려고 하거든요. 다른 파일에서 오류 생길것 같아서요......

search 는 2번을 말씀하시는거 같은데..
받아주는 board.php 에서 분명 수정이 진행되어야 할겁니다.
선택은 직접 하시는것인데...

window.location.href = "<?php echo G5_BBS_URL; ?>/board.php?bo_table=tl_land&sca=<?php echo $sca ?>&sop=and&sfl=wr_9=" + encodeURIComponent(wr_9_value) + "&sop=and&sfl=wr_10=" + encodeURIComponent(wr_10_value) + "&sop=and&sfl=wr_7=" + encodeURIComponent(wr_7_value); 에서

&sop=and&sfl=wr_10=", "&sop=and&sfl=wr_7="  부분을
var Nsfl = wr_10=+"/"+wr_7=; 로 하시고
"&sop=and&sfl=Nsfl 로 보내시고... 받아주는 페이지에서
if($bo_table == "tl_land"){
    $sop = $_GET['sop'];
    $sfl = $_GET['sfl']; 이라 할때
    if(strpos($sfl, "/") !== false){
        $Nsfl = explode("/", $sfl);
        $SEARCH_sfl = '';
        for($sf=0; $sf < count($Nsfl); $sf++){
            $SEARCH_sfl .= $Nsfl[$sf] 정의
        }
        $SEARCH .= AND `sop` IN ($SEARCH_sfl);
    }else{
        $Nsfl[0] = $sfl;
    }

}else{
    원래 search sop와 sfl 의 정의
}

위 예제처럼...(물론 내용은 달라집니다. 제가 임의로 마구잡이로 쓴거라) 작성하셔도 되고 참고하셔도 되는 방식이 존재 하고..또는

&sop=and&sfl=wr_10=", "&sop=and&sfl=wr_7="  부분을
답변 처럼 &sop=and&sfl=wr_10=", "&sop2=and&sfl2=wr_7=" 로 2로 만드셔서..
board.php 페이지에서 $sop 와 $sfl 의 정의 밑에

if($bo_table == "tl_land"){
    if(!empty($sop2) && !empty($sfl2)){
        기존 sop와 sfl 의 정의를 가져와 변수값만 바꿔준다.
    }
}

로 사용하셔도 될겁니다.

추신) 위 소스는 대략적인 것일 뿐 참고 용입니다.

return false; 하니까 되네요.
감사합니다.

2번 문의드린 사항은 방안이 없을까요?
sql 조회해서 목록 화면에 나타내면 되는데 search 부분이나 검색하는 부분 여분필드 값 넣어서 하는 부분이 어려워서 막혀 있습니다.

$bo_table = 'tl_land';
        $write_table = "g5_write_{$bo_table}";
        $sql = " select * from $write_table";
        $result = sql_query($sql);
        while ($row = sql_fetch_array($result))
        {
          echo $row['wr_subject'];
        }

이렇게 넣어서 결과값을 목록에 넣으면 나올 것 같기도 한데 안나오네요.
sql 구문을 어디다 넣으면 리스트에 값이 나올까요?

아니면 제가 구현하다가 막힌것처럼 search 응용해서 조회하는 방안은 없을까요?
.ㅜ.ㅜ  구상은 있는데 기능이 막혀서 나아가질 못합니다.

일단

exit(0); 이부분을 return false; 로 바꾸신후 테스트 해보세요.

2번 문의드린 사항은 방안이 없을까요?
sql 조회해서 목록 화면에 나타내면 되는데 search 부분이나 검색하는 부분 여분필드 값 넣어서 하는 부분이 어려워서 막혀 있습니다.

$bo_table = 'tl_land';
        $write_table = "g5_write_{$bo_table}";
        $sql = " select * from $write_table";
        $result = sql_query($sql);
        while ($row = sql_fetch_array($result))
        {
          echo $row['wr_subject'];
        }
를 돌리면 실행 하나요? 혹시 echo $sql; 을 찍어서 직접 쿼리를 날려보셨는지요?

$write_table = "g5_write_{$bo_table}";는 저보다는

$write_table = "g5_write_".$bo_table; 로 하시는게 나으실거고요..

 

$sql = " select * from $write_table";는 

$sql = " select * from {$write_table}";

이러게 진행 해보세요.

 

문의 하셨었던 2번

2. window.location.href = "<?php echo G5_BBS_URL; ?>/board.php?bo_table=tl_land&sca=<?php echo $sca ?>&sop=and&sfl=wr_9=" + encodeURIComponent(wr_9_value) + "&sop=and&sfl=wr_10=" + encodeURIComponent(wr_10_value) + "&sop=and&sfl=wr_7=" + encodeURIComponent(wr_7_value);

이 부분으로 검색기능을 좀 응용해서 검색 화면 나타내려고 했는데 조건 2개가 더 붙으니까 검색이 잘안되는듯 합니다.

search 코드에 값을 넣고 해야 하는데 기본 기능은 안건드리고 수정하고 싶어서 위와 같이 했습니다.

 

&query=SELECT * FROM `g5_write_tl_land` WHERE wr_9='조건1' and wr_10='조건2' and wr_7='조건3';

sql_query(&query);

 

이렇게 직접 넣는것도 생각 중인데 위의 결과 쿼리를 게시판 리스트 내용에 나오게 하려면 sql_query를 어떻게 마지막에 넣어야 하는지 모르겠습니다.

window.location.href = "<?php echo G5_BBS_URL; ?>/board.php?bo_table=tl_land&sca=<?php echo $sca ?>&sop=and&sfl=wr_9=" + encodeURIComponent(wr_9_value) + "&sop2=and&sfl2=wr_10=" + encodeURIComponent(wr_10_value) + "&sop3=and&sfl3=wr_7=" + encodeURIComponent(wr_7_value);

로 처리 해서 넘기시고...

받아주는(쿼리가 돌아야 하는 페이지) 곳 에서는

$sopQuery = "";

if(!empty($sop2) && !empty($sfl2)){

    $sopQuery = "AND `".$sop2."` = '.$sfl2.'";

}

$sopQuery2 = "";

if(!empty($sop3) && !empty($sfl3)){

    $sopQuery2 = "AND `".$sop3."` = '.$sfl3.'";

}

$bo_table = 'tl_land';
        $write_table = "g5_write_".$bo_table;
        $sql = " select * from {$write_table} WHERE (1) {$sopQuery} {$sopQuery2}";
        $result = sql_query($sql);
        while ($row = sql_fetch_array($result))
        {
          echo $row['wr_subject'];
        }

방식으로 처리 하시고 확인해보시기 바랍니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 56
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT