검색결과 검색된 분류 부분에서 전체를 맨앞에 위치시킬때 카운팅 채택완료
skin/shop/basic/search.skin.php 에서 검색된 분류 부분
</p>
<p><!-- 검색된 분류 시작 { -->
<div id="ssch_cate">
<ul class="flex clearfix">
<?php
$total_cnt = 0;
foreach( $categorys as $row ){
echo "<li class=\"flex\"><a href=\"#\" onclick=\"set_ca_id('{$row['ca_id']}'); return false;\" class=\"flex\">{$row['ca_name']} <span>".$row['cnt']."</span></a></li>\n";
$total_cnt += $row['cnt'];
}</p>
<p> echo '<li class="flex"><a href="#" onclick="set_ca_id(\'\'); return false;" class="flex">전체분류 <span>'.$total_count.'</span></a></li>'.PHP_EOL;
?>
</ul>
</div>
<!-- } 검색된 분류 끝 --></p>
<p>
기본은 위 소스처럼 되어있는데
전체분류가 항상 맨 뒤에 오는 것을 맨 앞으로 당겨오고싶어서 옮기니깐 total_cnt 가 0으로 고정되더라구요... $total_cnt 값을 계산하기 전에 불러오니... 0으로 뜨는거까진 이해를 했는데요;;
보다보니 상단에 총 몇건인지 출력하는 부분에서 $total_count 를 발견하고, 전체분류에 $total_cnt 대신 $total_count 를 넣어주고 맨 앞으로 가져오니 총 수량은 카운팅이 잘 됩니다....
그런데!! 이슈가 또 생깁니다;;
전체분류 9 / a카테고리 4 / b카테고리 5 라고 가정했을때,
a카테고리를 눌러서 들어가면 전체분류값이 4로 바뀝니다... qcaid 에 값이 있어서 해당 분류의 수량이 전체 수량으로 되어버리는 거 같은데요...;;
전체분류는 항상 9를 고정으로 가져가게 하고싶은... 검색결과내에서 전체를 제외한 카테고리를 들어가더라도
a카테고리 접속시
전체분류 9 / a카테고리 4
b카테고리 접속시
전체분류 9 / b카테고리 5
이렇게 뜨도록이요... 그러려면 어떤 식으로 접근해봐야 하나요??ㅠㅠㅠㅠ
일단 제가 생각했던건 foreach를 돌려서 $total_cnt 를 구하고,
전체 분류를 echo 로 출력시키고
다시 foreach 를 돌려서 각 카테고리들을 출력시키면 되지 않을까해서 해봤는데
이렇게 해도 증상은 똑같이 a카테고리 접속시 전체4 / a카테고리4 로 뜨는건 마찬가지더라구요;;ㅠㅠㅠ
방법이 없을까해서 문의드려봅니다ㅠㅠ
답변 1개
자바 스크립트 (Jquery) 로 처리하는 방법도 있기는 합니다. li 위치 변경
</div> 아래에 추가
<script>
$("#ssch_cate ul li:eq(0)").before($("#ssch_cate ul li:last-child"));
</script>
답변에 대한 댓글 4개
두번째 질문을 다시 찬찬히 살펴보고 검토해보니..
1시간 정도 살펴본 바로는..
관련있는 부분은 /bbs/search.php 의
if ($qcaid)
$where[] = " a.ca_id like '$qcaid%' ";
입니다.
스킨 파일에서 새로 쿼리를 해서 구하는 방식의 코드를 생각해 봤는데..
다음과 같습니다.
foreach ($where as $k => $v) {
if (strpos($v, 'ca_id like') === false)
$where2[] = $v;
}
$sql_where = " where " . implode(" and ", $where2);
$sql = " select COUNT(*) as cnt $sql_common $sql_where ";
$row = sql_fetch($sql);
$t_cnt = $row['cnt'];
echo $t_cnt;
또는
하위분류로 들어간 경우에는.. ($qcaid 변수 값이 있는 경우)
전체 분류 링크만 표시하고, () 검색건수 표기는 빼는 방법을 생각해 볼 수도 있을 것 같습니다.
이렇게까지 시간을 뺏으리라고는 생각못했습니다;;
제가 개발자가 아니어서 접근을 1차원적으로밖에 못해서 개발자분들은 저거를 구현한다면 어떤식으로 접근해서 할지 궁금해서....
조언을 구하고자 했던 의도였었는데 이거때문에 시간도 뺏고 소스까지 주시니.....;;; 땀이 다 나네요...;;
저도 안그래도 search.php 부분에서 qcaid 부분 걸러내는걸 주석처리 해봤었는데
주석처리하니 카테고리 클릭시 선택된 카테고리의 제품들로만 sorting이 되질 않아서... 그냥 다시 원복시키고 질문드려봤습니다ㅠㅠㅠ
저 소스대로 라면 search.skin.php 에서는 $t_cnt 로 불러오면 되겠네요!
일단 당장 확인은 어려울거 같습니다ㅠㅠㅠ
시간내서 도와주셨는데 바로 확인 못해서 죄송할 따름이고...ㅠㅠㅠㅠ
시간내서 도와주셔서 감사드립니다!!ㅠㅠ
내일 바로 확인해보겠습니다! 오늘 하루도 고생하셨습니다~!
안그래도 저게 해결이 안되고 있어서...
[code]
echo '<li class="flex"><a href="#" onclick="set_ca_id(\'\'); return false;" class="flex">전체분류'.( !$qcaid ? ' <span>'.$total_count.'</span>' : '').'</a></li>'.PHP_EOL;
[/code]
이렇게 그냥 카테고리로 접속했을때, $qcaid 값이 없을 경우에만 카운팅표시되게 해놓은 상태였는데... 맨아래에 이런식으로 하는 것도 조언주셨었네요!!
일단 알려주신 쿼리 적용해보고나서 계속 고정으로 띄울지 카테고리 접속시 숨길지는 그때 생각해보고 결정하면 될 것 같습니다!! 감사드립니다~!!
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
전체분류의 카운팅이 바뀌는 부분은 기본 틀에서 조차 이슈가 생기는 부분이어서...
말씀해주신 스크립트로는 앞으로는 당겨올 수 있겠지만.. $total_cnt 의 값은 고정으로 되진 않네요;;