[G4] 스킨에서 여분(추가)필드를 검색범위로 하는 3단계 검색예시 > 기술자료 | 해피정닷컴

[G4] 스킨에서 여분(추가)필드를 검색범위로 하는 3단계 검색예시 > 기술자료

본문 바로가기

사이트 내 전체검색

[G4] 스킨에서 여분(추가)필드를 검색범위로 하는 3단계 검색예시 > 기술자료

그누보드 [G4] 스킨에서 여분(추가)필드를 검색범위로 하는 3단계 검색예시

페이지 정보


본문

config.list_select.php를 적용스킨의 list.skin.php에 인클루드하시면 됩니다...

이하 config.list_select.php의 내용
--------------------------------------------------------------------------------------------
<script language="JavaScript">
<!--
    var sojaeji = new Array();

    sojaeji['대분류'] = '테니스,축구,농구,스키,수영,탁구,골프,육상,요가,윈드서핑,인라인스케이팅,볼링';
    sojaeji['테니스'] = '남구,북구,해운대구';
    sojaeji['테니스->남구'] = '월,화,수,목,금,토,일';
    sojaeji['테니스->북구'] = '월,화,수,목,금,토,일';
    sojaeji['테니스->해운대구'] = '월,화,수,목,금,토,일';
    sojaeji['축구'] = '남구,북구,해운대구';
    sojaeji['축구->남구'] = '월,화,수,목,금,토,일';
    sojaeji['축구->북구'] = '월,화,수,목,금,토,일';
    sojaeji['축구->해운대구'] = '월,화,수,목,금,토,일';
    sojaeji['농구'] = '남구,북구,해운대구';
    sojaeji['농구->남구'] = '월,화,수,목,금,토,일';
    sojaeji['농구->북구'] = '월,화,수,목,금,토,일';
    sojaeji['농구->해운대구'] = '월,화,수,목,금,토,일';
    sojaeji['스키'] = '남구,북구,해운대구';
    sojaeji['스키->남구'] = '월,화,수,목,금,토,일';
    sojaeji['스키->북구'] = '월,화,수,목,금,토,일';
    sojaeji['스키->해운대구'] = '월,화,수,목,금,토,일';
    sojaeji['수영'] = '남구,북구,해운대구';
    sojaeji['수영->남구'] = '월,화,수,목,금,토,일';
    sojaeji['수영->북구'] = '월,화,수,목,금,토,일';
    sojaeji['수영->해운대구'] = '월,화,수,목,금,토,일';
    sojaeji['탁구'] = '남구,북구,해운대구';
    sojaeji['탁구->남구'] = '월,화,수,목,금,토,일';
    sojaeji['탁구->북구'] = '월,화,수,목,금,토,일';
    sojaeji['탁구->해운대구'] = '월,화,수,목,금,토,일';
    sojaeji['골프'] = '남구,북구,해운대구';
    sojaeji['골프->남구'] = '월,화,수,목,금,토,일';
    sojaeji['골프->북구'] = '월,화,수,목,금,토,일';
    sojaeji['골프->해운대구'] = '월,화,수,목,금,토,일';
    sojaeji['육상'] = '남구,북구,해운대구';
    sojaeji['육상->남구'] = '월,화,수,목,금,토,일';
    sojaeji['육상->북구'] = '월,화,수,목,금,토,일';
    sojaeji['육상->해운대구'] = '월,화,수,목,금,토,일';
    sojaeji['요가'] = '남구,북구,해운대구';
    sojaeji['요가->남구'] = '월,화,수,목,금,토,일';
    sojaeji['요가->북구'] = '월,화,수,목,금,토,일';
    sojaeji['요가->해운대구'] = '월,화,수,목,금,토,일';
    sojaeji['윈드서핑'] = '남구,북구,해운대구';
    sojaeji['윈드서핑->남구'] = '월,화,수,목,금,토,일';
    sojaeji['윈드서핑->북구'] = '월,화,수,목,금,토,일';
    sojaeji['윈드서핑->해운대구'] = '월,화,수,목,금,토,일';
    sojaeji['인라인스케이팅'] = '남구,북구,해운대구';
    sojaeji['인라인스케이팅->남구'] = '월,화,수,목,금,토,일';
    sojaeji['인라인스케이팅->북구'] = '월,화,수,목,금,토,일';
    sojaeji['인라인스케이팅->해운대구'] = '월,화,수,목,금,토,일';
    sojaeji['볼링'] = '남구,북구,해운대구';
    sojaeji['볼링->남구'] = '월,화,수,목,금,토,일';
    sojaeji['볼링->북구'] = '월,화,수,목,금,토,일';
    sojaeji['볼링->해운대구'] = '월,화,수,목,금,토,일';

    function sidochange()
    {
        var f = document.fsearch_area;

        gugunview(f.sido.value);
        dongview(f.sido.value, f.gugun.value);
    }

    function gugunchange()
    {
        var f = document.fsearch_area;

        dongview(f.sido.value, f.gugun.value);
    }

    function dongview(sido, gugun)
    {
        var f = document.fsearch_area;

        f.dong.options.length = 1;
        f.dong.options[0].text = "가능종목(전체)";
        f.dong.options[0].selected = true;
        if (!sido || !gugun) {
            return;
        }

        sojae = sojaeji[sido+"->"+gugun].explode(",");
        //sojae = sojaeji[sido+"->"+gugun].split(",");
        f.dong.options.length = sojae.length+1;
        for (i=0; i<sojae.length; i++) {
            f.dong.options[i+1].value = sojae[i];
            f.dong.options[i+1].text = sojae[i];
        }
    }

    function gugunview(sido)
    {
        var f = document.fsearch_area;

        f.gugun.options.length = 1;
        f.gugun.options[0].text = "희망지역(전체)";
        f.gugun.options[0].selected = true;
        if (!sido) {
            return;
        }

        sojae = sojaeji[sido].explode(",");
        //sojae = sojaeji[sido].split(",");
        f.gugun.options.length = sojae.length+1;
        for (i=0; i<sojae.length; i++) {
            f.gugun.options[i+1].value = sojae[i];
            f.gugun.options[i+1].text = sojae[i];
        }
    }

    function sidoview()
    {
        var f = document.fsearch_area;

        f.sido.options.length = 1;
        f.sido.options[0].text = "교육가능일(전체)";
        sojae = sojaeji["대분류"].explode(",");
        //sojae = sojaeji["대분류"].split(",");
        f.sido.options.length = sojae.length+1;
        for (i=0; i<sojae.length; i++) {
            f.sido.options[i+1].value = sojae[i];
            f.sido.options[i+1].text = sojae[i];
        }
    }
function onChangeKey() {
var sido = document.fsearch_area.sido.value;
var gugun = document.fsearch_area.gugun.value;
var dong = document.fsearch_area.dong.value;

if (sido == "" && gugun == ""&& dong == "") {
alert("유형을 선택하세요!!");
return false;
} else {
if (gugun == "전체")  {
document.fsearch_area.stx.value = sido;
} else {
  if (gugun == "전체"&& dong == "전체")  {
document.fsearch_area.stx.value = sido + " " + gugun;
}else {
document.fsearch_area.stx.value = sido + " " + gugun + " " + dong;
}
}
document.fsearch_area.submit();
}
}
//-->
</script>

<script language="JavaScript" src='./sojaeji.js'></script>
<table cellpadding=0 cellspacing=0 border=0>
<form name=fsearch_area method=get>
<input type=hidden name=bo_table value="<?=$bo_table?>">
<input type=hidden name=sca value="<?=$sca?>">
<input type=hidden name=sfl value="wr_6||wr_7">
<tr>
    <td>+ 분류검색 :

<select name=sido onchange="sidochange()"></select>

<select name=gugun onchange="gugunchange()"></select>

<select name=dong></select>
<input type=image src="<?=$board_skin_path?>/img/search_btn.gif" border=0 align=absmiddle onClick="onChangeKey();return false;">
<input type=hidden name=sop value='and'>
<input type=hidden name=stx value=''>
    </td>
</tr>
</form>
</table>
<?
 if ($srch_type != "") { $stx = ""; }
?>
<script language="JavaScript">
<!--
    sidoview();
    gugunview("");
    dongview("", "");
//-->
</script>
--------------------------------------------------------------------------------------------

관리자님의 우편번호를 이용한 소재지 셀렉트 박스..
http://www.sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=5435
yesmoa님의 스킨에서 다중 셀렉트문 구현..
(3단계 검색이 적용되어 있으나 시도구군을 포함한 스크립트라서 우편번호가 아닌 다른 필드로의 커스터마이징이 용이하지 않음)
http://www.sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=811
에서 힌트를 얻었습니다만 사실 짜깁기에 불과 합니다...

스킨의 목록(list.skin.php)에서
여분필드를 활용한 3단계 분류검색시의 예시이며...
수정을 가하면 카테고리 확장에 의한 3단계분류도 가능할것으로 보입니다...

위의 예에서 각각..
대분류는 해당종목(여분필드 wr_6 쪼갠값1)
중분류는 가능지역(여분필드 wr_7 쪼갠값)
소분류는 교육가능일(여분필드 wr_6 쪼갠값2)
에 대응되며...

검색범위는  wr_6,wr_7에만 한정해도 충분함으로
<input type=hidden name=sfl value="wr_6||wr_7">
로 검색범위를 한정..
만일 여분필드를 쪼개지 않고 입력값으로 wr_6, wr_7, wr_8을 그대로 사용하여 3단계로 나눈다면 검색범위는
<input type=hidden name=sfl value="wr_6||wr_7||wr_8">
로 잡아 주시면 됩니다...

분류 데이터명을 직접 일일이 다 써줘야 한다는 애로사항이 있긴합니다만 나름대로 쓸만하다고 봅니다...



출처 : 시그너스 님 ( http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=7961 )

댓글목록

등록된 댓글이 없습니다.


Total 2,641건 104 페이지
  • RSS
기술자료 목록
581
PHP   15118  2008-12-17 21:02 ~ 2018-10-09 09:21  
580
ClassicASP   11843  2008-12-11 17:35 ~ 2009-10-08 00:00  
579
일반   17152  2008-12-02 12:35  
578
ClassicASP   10546  2008-11-29 14:44  
577
ClassicASP   14672  2008-11-29 14:41 ~ 2012-06-09 00:00  
576
MSSQL   17061  2008-11-27 22:46  
575
MSSQL   21276  2008-11-27 14:21  
574
ClassicASP   17429  2008-11-26 23:02  
573
일반   12980  2008-11-24 21:11  
572
일반   16185  2008-11-21 17:15  
571
MSSQL   17918  2008-11-19 17:31 ~ 2017-10-17 00:00  
570
PHP   24429  2008-10-29 10:33 ~ 2013-04-06 00:00  
569
일반   13002  2008-10-28 15:37  
568
일반   14779  2008-10-24 11:45  
567
HTML   14601  2008-09-22 17:38  
566
일반   28804  2008-09-09 12:37  
565
그누보드   16625  2008-09-07 10:17  
564
영카트   15682  2008-09-06 06:04  
563
그누보드   15382  2008-09-04 20:48  
562
Search   11935  2008-09-03 14:53  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2025 해피정닷컴. All Rights Reserved.