페이지가 로드되면 검색값이 초기화됩니다. 채택완료
앞으로앞으로
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 포인트
7년 전
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년 전
해결됐습니다! 감사합니다!!
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인