테스트 사이트 - 개발 중인 베타 버전입니다

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

앞으로앞으로 7년 전 조회 2,296

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

 

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

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

 

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

 

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

 

</p>

<p><form id="fsearch" name="fsearch" class="local_sch01 local_sch" method="get"></p>

<p><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="검색"></p>

<p></form></p>

<p> </p>

<p> </p>

<p><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></p>

<p> </p>

<p> </p>

<p><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=""></p>

<p>

 

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

</p>

<p>$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 .= " ) ";

}</p>

<p>if ($sex) {

    $male='male';

    $female='female';

    $inf_sex='inf_sex';</p>

<p>    $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;

    }</p>

<p>    $sql_search .= " ) ";

}</p>

<p>if ($age) {

    $inf_age='inf_age';</p>

<p>    $sql_search .= " and ( ";</p>

<p>    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;

    }</p>

<p>    $sql_search .= " ) ";

}</p>

<p>

 

 

 

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

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

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

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

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

이렇게 됩니다.

 

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

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

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
그누위즈

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

</p>

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

<p>

부분이있습니다.

만약 age로 예를든다면

</p>

<p>if($_GET['age']) { 

    $qstr .= 'age='.$_GET['age']; 

}</p>

<p>

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

</p>

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

<p>

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

 

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

앞으로앞으로
7년 전
해결됐습니다! 감사합니다!!

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인