페이지가 로드되면 검색값이 초기화됩니다.

페이지가 로드되면 검색값이 초기화됩니다.

QA

페이지가 로드되면 검색값이 초기화됩니다.

본문

멤버 리스트에서 성별과 나이로 검색을 추가로 할려고했습니다.

 

검색을 한뒤에 2번째 페이지를 누르면 검색 값이 초기화가 됩니다.

ex) 여성으로 검색 -> 검색 잘됨 -> 두번째 페이지 누르면 남 녀 다 나옴

 

adm/member_list를 참고해서 봐주시면 좋을거 같습니다.

 

1988327811_1521602195.9161.png

이렇게 검색이 되게 하려고 하는데요.

 


<form id="fsearch" name="fsearch" class="local_sch01 local_sch" method="get">
<label for="sfl" class="sound_only">검색대상</label>
<select name="sfl" id="sfl">
    <option value="mb.mb_id"<?php echo get_selected($_GET['sfl'], "mb.mb_id"); ?>>회원아이디</option>
    <option value="mb.mb_name"<?php echo get_selected($_GET['sfl'], "mb.mb_name"); ?>>이름</option>
</select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input">
<input type="submit" class="btn_submit" value="검색">
</form>
 
 
<form id="Ssearch" name="Ssearch" class="local_sch01 local_sch" method="get">
<label for="age" class="sound_only">나이</label>
<select name="age" id="age">
    <option value="mb.age"<?php echo get_selected($_GET['age'], "mb.age"); ?>>나이</option>
    <option value="mb.age10"<?php echo get_selected($_GET['age'], "mb.age10"); ?>>10대</option>
    <option value="mb.age20"<?php echo get_selected($_GET['age'], "mb.age20"); ?>>20대</option>
    <option value="mb.age30"<?php echo get_selected($_GET['age'], "mb.age30"); ?>>30대</option>
    <option value="mb.age40"<?php echo get_selected($_GET['age'], "mb.age40"); ?>>40대이상</option>
</select>
<label for="sex" class="sound_only">성별</label>
<select name="sex" id="sex">
    <option value="mb.sex"<?php echo get_selected($_GET['sex'], "mb.sex"); ?>>성별</option>
    <option value="mb.male"<?php echo get_selected($_GET['sex'], "mb.male"); ?>>남자</option>
    <option value="mb.female"<?php echo get_selected($_GET['sex'], "mb.female"); ?>>여자</option>
</select>
<input type="submit" class="btn_submit" value="검색">
</form>
 
 
<form name="fmemberlist" id="fmemberlist" action="./member_list_update.php" onsubmit="return fmemberlist_submit(this);" method="post">
<input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="age" value="<?php echo $age ?>">
<input type="hidden" name="sex" value="<?php echo $sex ?>">
<input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="">

 

혹시 몰라 검색하는 sql 부분도 첨부합니다.


$sql_search = " where (1) ";
if ($stx) {
    $sql_search .= " and ( ";
    switch ($sfl) {
        case 'mb_point' :
            $sql_search .= " ({$sfl} >= '{$stx}') ";
            break;
        case 'mb_tel' :
        case 'mb_hp' :
            $sql_search .= " ({$sfl} like '%{$stx}') ";
            break;
         case 'mb_hp' :
            $sql_search .= " ({$sfl} like '%{$stx}') ";
            break;
        default :
            $sql_search .= " ({$sfl} like '{$stx}%') ";
            break;
    }
    $sql_search .= " ) ";
}
if ($sex) {
    $male='male';
    $female='female';
    $inf_sex='inf_sex';
    $sql_search .= " and ( ";
    switch ($sex) {
        case 'mb.sex' :
            $sql_search .= " 1 ";
            break;
        case 'mb.male' :
            $sql_search .= " ({$inf_sex} like '{$male}') ";
            break;
         case 'mb.female' :
            $sql_search .= " ({$inf_sex} like '{$female}') ";
            break;
    }
    $sql_search .= " ) ";
}
if ($age) {
    $inf_age='inf_age';
    $sql_search .= " and ( ";
    switch ($age) {
        case 'mb.age' :
            $sql_search .= " 1 ";
            break;
        case 'mb.age10' :
            $sql_search .= " ({$inf_age} < 20) ";
            break;
        case 'mb.age20' :
            $sql_search .= " ({$inf_age} >= 20 AND {$inf_age} < 30) ";
            break;
        case 'mb.age30' :
            $sql_search .= " ({$inf_age} >= 30 AND {$inf_age} < 40) ";
            break;
        case 'mb.age40' :
            $sql_search .= " ({$inf_age} >= 40) ";
            break;
    }
    $sql_search .= " ) ";
}

 

 

 

검색할 때 url을 보면(?이하만 쓰겠습니다.)

여성으로 검색했을때 url입니다.

token=6d874055e9d5daaef152ad027980ef06&age=mb.age&sex=mb.female

하지만 두번째 페이지를 누르니

sst=&sod=&sfl=&stx=&page=2

이렇게 됩니다.

 

검색 값이 안보내지는거 같은데 어떻게 하면 좋을까요??ㅠㅠ

웹고수님들 부탁드립니다ㅜㅜ

이 질문에 댓글 쓰기 :

답변 1

member_list.php 파일을 기준으로 하단에 보시면


<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, '?'.$qstr.'&page='); ?>

부분이있습니다.

만약 age로 예를든다면


if($_GET['age']) { 
    $qstr .= 'age='.$_GET['age']; 
}

이런형식으로 $qstr에 연결해주거나


<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, '?'.$qstr.'&page=', '&age='.$age); ?>

형식으로 페이징 함수에 전달해주셔야합니다.

 

테스트를 해본 코드는 아니나 어떤 의미인지 아실듯 합니다.

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

회원로그인

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