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

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

QA

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

답변 1

본문

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

 

검색을 한뒤에 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); ?>

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

 

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

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 4,558
© SIRSOFT
현재 페이지 제일 처음으로