다중검색 후에 2~3페이지 클릭시 초기화 되는 현상

다중검색 후에 2~3페이지 클릭시 초기화 되는 현상

QA

다중검색 후에 2~3페이지 클릭시 초기화 되는 현상

본문


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
?>
<!-- 검색 시작 { -->
<div id="ssch">
<!-- 분류 체크박스  -->
<form name="frmdetailsearch" class="check_box_wrapper">
        <input type="hidden" name="qsort" id="qsort" value="<?php echo $qsort ?>">
        <input type="hidden" name="qorder" id="qorder" value="<?php echo $qorder ?>">
        <input type="hidden" name="qcaid" id="qcaid" value="<?php echo $qcaid ?>">
        <div class="chk_wrapper">
          <dl>
              <dt>STEP 01 어떤 제품을 찾으시나요?</dt>
              <dd>
              <input type="checkbox" id="chk1" name="it_step1[]" value="WEDDING" <?php if (strpos($it_step1_arr,"WEDDING") !== false){ echo "checked"; }?>>
              <label for="chk1"></label><span >WEDDING</span>
              <input type="submit" value="" class="btn_submit">
              </dd>
              <dd>
              <input type="checkbox" id="chk2" name="it_step1[]" value="PROPOSE" <?php if (strpos($it_step1_arr,"PROPOSE") !== false){ echo "checked"; }?>>
              <label for="chk2"></label><span>PROPOSE</span>
              <input type="submit" value="" class="btn_submit">
              </dd>
              <dd>
              <input type="checkbox" id="chk3" name="it_step1[]" value="FINE" <?php if (strpos($it_step1_arr,"FINE") !== false){ echo "checked"; }?>>
              <label for="chk3"></label><span>FINE</span>
              <input type="submit" value="" class="btn_submit">
              </dd>
              <dd>
              <input type="checkbox" id="chk4" name="it_step1[]" value="FASHION" <?php if (strpos($it_step1_arr,"FASHION") !== false){ echo "checked"; }?>>
              <label for="chk4"></label><span>FASHION</span>
              <input type="submit" value="" class="btn_submit">
              </dd>
              <dd>
              <input type="checkbox" id="chk5" name="it_step1[]" value="PEARL" <?php if (strpos($it_step1_arr,"PEARL") !== false){ echo "checked"; }?>>
              <label for="chk5"></label><span>PEARL</span>
              <input type="submit" value="" class="btn_submit">
              </dd>
          </dl>
          <dl>
              <dt>STEP 02 어떤 스타일의 제품을 찾으시나요?</dt>
              <dd>
              <input type="checkbox" id="chk1_1" name="it_step2[]"  value="SIMPLE" <?php if (strpos($it_step2_arr,"SIMPLE") !== false){ echo "checked"; }?>>
              <label for="chk1_1"></label><span>SIMPLE</span>
              <input type="submit" value="" class="btn_submit">
              </dd>
              <dd>
              <input type="checkbox" id="chk1_2" name="it_step2[]" value="LOVELY" <?php if (strpos($it_step2_arr,"LOVELY") !== false){ echo "checked"; }?>>
              <label for="chk1_2"></label><span>LOVELY</span>
              <input type="submit" value="" class="btn_submit">
              </dd>
              <dd>
              <input type="checkbox" id="chk1_3" name="it_step2[]" value="FANCY" <?php if (strpos($it_step2_arr,"FANCY") !== false){ echo "checked"; }?>>
              <label for="chk1_3"></label><span>FANCY</span>
              <input type="submit" value="" class="btn_submit">
              </dd>
              <dd>
              <input type="checkbox" id="chk1_4" name="it_step2[]" value="UNIQUE" <?php if (strpos($it_step2_arr,"UNIQUE") !== false){ echo "checked"; }?>>
              <label for="chk1_4"></label><span>UNIQUE</span>
              <input type="submit" value="" class="btn_submit">
              </dd>
          </dl>
          <dl>
              <dt>STEP 03 생각하는 금액대는 어느 정도인가요?</dt>
              <dd>
              <input type="checkbox" id="chk2_1" name="it_step3[]" value="30" <?php if (strpos($it_step3_arr,"30") !== false){ echo "checked"; }?>>
              <label for="chk2_1"></label><span>30만원 이하</span>
              <input type="submit" value="" class="btn_submit">
              </dd>
              <dd>
              <input type="checkbox" id="chk2_2" name="it_step3[]" value="50" <?php if (strpos($it_step3_arr,"50") !== false){ echo "checked"; }?>>
              <label for="chk2_2"></label><span>~50만원</span>
              <input type="submit" value="" class="btn_submit">
              </dd>
              <dd>
              <input type="checkbox" id="chk2_3" name="it_step3[]" value="100" <?php if (strpos($it_step3_arr,"100") !== false){ echo "checked"; }?>>
              <label for="chk2_3"></label><span>~100만원</span>
              <input type="submit" value="" class="btn_submit">
              </dd>
              <dd>
              <input type="checkbox" id="chk2_4" name="it_step3[]" value="200" <?php if (strpos($it_step3_arr,"200") !== false){ echo "checked"; }?>>
              <label for="chk2_4"></label><span>~200만원</span>
              <input type="submit" value="" class="btn_submit">
              </dd>
              <dd>
              <input type="checkbox" id="chk2_5" name="it_step3[]" value="up" <?php if (strpos($it_step3_arr,"up") !== false){ echo "checked"; }?>>
              <label for="chk2_5"></label><span>200만원 이상</span>
              <input type="submit" value="" class="btn_submit">
              </dd>
          </dl>
      </div>
        </div>
        <a href="javascript:void(0)" class="uncheck">Clear All</a>
<!-- // 분류 체크박스 -->
    <!-- 상세검색 항목 시작 { -->
    <div id="ssch_frm">
        <center><h2><span><strong><?php echo $q; ?></strong> 검색결과</span> (총 <strong><?php echo $total_count; ?></strong> 건 )</h2></center>

        <div class="ssch_scharea">
<!--
            <div class="ssch_right">
                <strong class="sound_only">검색범위</strong>
                <input type="checkbox" name="qname" id="ssch_qname" value="1" <?php echo $qname_check?'checked="checked"':'';?>> <label for="ssch_qname">상품명</label>
                <input type="checkbox" name="qexplan" id="ssch_qexplan" value="1" <?php echo $qexplan_check?'checked="checked"':'';?>> <label for="ssch_qexplan">상품설명</label>
                <input type="checkbox" name="qbasic" id="ssch_qbasic" value="1" <?php echo $qbasic_check?'checked="checked"':'';?>> <label for="ssch_qbasic">기본설명</label>
                <input type="checkbox" name="qid" id="ssch_qid" value="1" <?php echo $qid_check?'checked="checked"':'';?>> <label for="ssch_qid">상품코드</label>
                <span>
                <strong class="sound_only">상품가격 (원)</strong>
                <label for="ssch_qfrom" class="sound_only">최소 가격</label>
                <input type="text" name="qfrom" value="<?php echo $qfrom; ?>" id="ssch_qfrom" class="ssch_input" size="8"> 원 ~
                <label for="ssch_qto" class="sound_only">최대 가격</label>
                <input type="text" name="qto" value="<?php echo $qto; ?>" id="ssch_qto" class="ssch_input" size="8"> 원
                </span>
            </div>
          -->
            <div class="ssch_left">
                <label for="ssch_q" class="sound_only" >검색어</label>
                <input type="text" name="q" value="<?php echo $q; ?>" id="ssch_q" class="ssch_input" size="40" maxlength="30" placeholder="상품을 입력 하세요. 예) 커플링 ">
                <input type="submit" value="검색"  class="btn_submit">
            </div>
        </div>
        <p>
            상세검색을 선택하지 않거나, 상품가격을 입력하지 않으면 전체에서 검색합니다.<br>
            검색어는 최대 30글자까지, 여러개의 검색어를 공백으로 구분하여 입력 할수 있습니다.
        </p>
        </form>
    </div>
    <!-- } 상세검색 항목 끝 -->
    <!-- 검색된 분류 시작 { -->
    <!-- <div id="ssch_cate" class="sct_ct">
        <ul>
        <?php
        $total_cnt = 0;
        echo '<li><a href="#" onclick="set_ca_id(\'\'); return false;" class="btn_hover box all">전체분류 <span>'.$total_cnt.'</span></a></li>'.PHP_EOL;
        foreach( $categorys as $row ){
            echo "<li><a href=\"#\" onclick=\"set_ca_id('{$row['ca_id']}'); return false;\" class=\"btn_hover box\">{$row['ca_name']} <span>".$row['cnt']."</span></a></li>\n";
            $total_cnt += $row['cnt'];
        }
        ?>
        </ul>
    </div> -->
    <!-- } 검색된 분류 끝 -->
    <!-- 검색결과 시작 { -->
    <div>
        <?php
        // 리스트 유형별로 출력
        define('G5_SHOP_CSS_URL', G5_MSHOP_SKIN_URL);
        $list_file = G5_MSHOP_SKIN_PATH.'/'.$default['de_mobile_search_list_skin'];
        if (file_exists($list_file)) {
            $list = new item_list($list_file, $default['de_mobile_search_list_mod'], $default['de_mobile_search_list_row'], $default['de_mobile_search_img_width'], $default['de_mobile_search_img_height']);
            $list->set_query(" select * $sql_common $sql_where $sql_search1 $sql_search2 $sql_search3 {$order_by} limit $from_record, $items ");
            $list->set_is_page(true);
            $list->set_mobile(true);
            $list->set_view('it_img', true);
            $list->set_view('it_id', false);
            $list->set_view('it_name', true);
            $list->set_view('it_basic', true);
            $list->set_view('it_cust_price', false);
            $list->set_view('it_price', true);
            $list->set_view('it_icon', true);
            $list->set_view('sns', true);
            echo $list->run();
        }
        else
        {
            $i = 0;
            $error = '<p class="sct_nofile">'.$list_file.' 파일을 찾을 수 없습니다.<br>관리자에게 알려주시면 감사하겠습니다.</p>';
        }
        if ($i==0)
        {
            echo '<div>'.$error.'</div>';
        }
        $query_string = 'qname='.$qname.'&qexplan='.$qexplan.'&qid='.$qid.'&qbasic='.$qbasic;
        if($qfrom && $qto) $query_string .= '&qfrom='.$qfrom.'&qto='.$qto;
        $query_string .= '&qcaid='.$qcaid.'&q='.urlencode($q);
        $query_string .='&qsort='.$qsort.'&qorder='.$qorder;
        echo get_paging($config['cf_mobile_pages'], $page, $total_page, $_SERVER['SCRIPT_NAME'].'?'.$query_string.'&page=');
        ?>
    </div>
    <!-- } 검색결과 끝 -->
</div>
<!-- } 검색 끝 -->
<script>
function set_sort(qsort, qorder)
{
    var f = document.frmdetailsearch;
    f.qsort.value = qsort;
    f.qorder.value = qorder;
    f.submit();
}
function set_ca_id(qcaid)
{
    var f = document.frmdetailsearch;
    f.qcaid.value = qcaid;
    f.submit();
}
$("dd input[type='checkbox']").on('click', function(){
     var f = document.frmdetailsearch;
     f.submit();
});

</script>
<script>
    $(".uncheck").click(function(){
       var input = $("input").attr("checked", true);
       input.removeAttr("checked");
       var f = document.frmdetailsearch;
     f.submit();
    });
</script>
 

이 질문에 댓글 쓰기 :

답변 3

보통 이경우엔 get_paging 에 파라미터값이 전달이 안되어 페이지이동시에 파라미터를 들고가지 않아 발생하는 문제입니다

it_step1 , it_step2 , it_step3 등을 보시면 아시겠지만 값이있을때 파라미터로 들고가지않네요

 

$query_string .= '&it_step1='.$it_step1.'&it_step2='.$it_step2.'&it_step3='.$it_step3;

이런식으로 값을 get_paging에 넘겨주셔야합니다

말그대로 echo get_paging에 파라미터값을 담은 url을 보내줘야한다는 이야기입니다
echo get_paging 위에 제가 적은 $query_string 변수를 넣어줘보세요

'&it_step1[]='.$it_step1 이런식이 되어야하겠네요
기존에 인풋네임이 it_step1[]이니깐요

친절한 답변 감사 드립니다. 그렇게도 해보았는데요, 2페이지 넘기면 검색 결과가 조금 바뀔뿐  체크박스가 풀려버리네요 ^^:
1페이지 문제 없음.
search.php?qsort=&qorder=&qcaid=&it_step1%5B%5D=WEDDING&it_step1%5B%5D=PROPOSE&it_step3%5B%5D=up&q=

2페이지 결과 없음.
shop/search.php?qname=&qexplan=&qid=&qbasic=&it_step1[]=Array&it_step2[]=&it_step3[]=Array&qcaid=&q=&qsort=&qorder=&page=2


1페이지
/search.php?qsort=&qorder=&qcaid=&it_step1%5B%5D=WEDDING&it_step1%5B%5D=PROPOSE&it_step3%5B%5D=up&q=&page=2
끝에 &page=2  직접 입력시 2페이지 결과값이 정상입니다.

아아아

이렇게 해주세요
'&it_step1[]='.implode('&it_step1[]=',$it_step1)
이런식으로 나머지 스탭도 처리해주시면됩니다

get방식으로 배열을 넘기는거기때문에 이런식으로 넘겨야할꺼에요

다중 검색후 리스트에서 

 

열린1페이지 2페이지 3페이지 맨끝

 

페이지 이동을 하면 검색 결과가 초기화 됩니다.  

위 소스중에 빠진 부분이 있을까요 ??

form method 를 get으로 하셔서 검색 후 $query_string 쪽으로 검색 값이 같이 넘어가는지 먼저 체크 해보세요...

현재 소스상으로는 $query_string에 검색값이 없는것으로 보여지는데... hidden 값만 넘어가는것으로 보여집니다

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

회원로그인

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