시

스킨에서 여분필드를 검색범위로 하는 3단계 검색예시...

· 2006-10-20 (금) 14:18:30 · 9574 · 32
ss.jpg
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].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].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["대분류"].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">
로 잡아 주시면 됩니다...

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

첨부파일

ss.jpg (13 KB)
0회 2006-10-20 14:18
config.list_select.php (5.7 KB) 388회 2006-10-20 14:18
|

댓글 32개

2006-10-20 (금) 14:20:48
수고하셨습니다....일단 제 기록에 스크랩합니다......^^
감사합니다......
쫗은자료네요..^^ 수고 많으셨습니다.
감사합니다.^^
공부해보겠습니다.
스크랩합니다~!수고하셨습니다.
좋은것 같으네요~^^
2006-10-22 (일) 23:26:37
3단계 검색예시
2006-10-25 (수) 21:57:21
감사합니다~
좋습니다. ^^b
좋은 정보 감사합니다.
검색관련
감사합니다. 제게 필요한 팁이네요
좋은팁 감사합니다.
config.list_select.php 를 최근게시물에 인클루드하고
특정게시판에 있는 내용만 불러올수 있는지요
2007-03-30 (금) 11:21:35
좋은팁이네요.
스킨 제작시 도움이 될 것 같습니다.. ^^
2007-06-22 (금) 15:17:48
찾던거 였는데 ^^

잘 보그 갑니다~!
검색 알고리즘
2008-02-17 (일) 23:47:38
잘만사용하면....감사합니다.
지금 바로 적용합니다.^^ 감사
담아갑니다
좋은내용 감사합니다. 추천 꾸욱....
2008-09-02 (화) 22:44:20
굿입니다. !!! 추천한방!
사용잘하겠습니다.
2009-01-21 (수) 08:21:39
다중검색
2009-04-14 (화) 17:47:42
분류별 여분필드 카테고리
2010-01-06 (수) 11:56:02
좋은정보 감사합니다.
rt
2012-03-31 (토) 16:07:12
스킨에서 여분필드를 검색범위로
split 함수가 PHP 5.3 부터 더이상 사용할수 없다고 하는군요. explode 로 변경되어야 합니다. 적용하실때 참고하세욤...
댓글을 작성하시려면 로그인이 필요합니다.

그누4 팁자료실

3,309건

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요. 나누면 즐거움이 커집니다.

+
제목 글쓴이 날짜 조회
06-10-29 조회 5,124
06-10-29 조회 8,910
06-10-28 조회 5,091
06-10-28 조회 5,323
06-10-27 조회 7,992
06-10-25 조회 3,267
06-10-25 조회 3,871
06-10-25 조회 5,596
06-10-24 조회 3,968
06-10-24 조회 3,317
06-10-24 조회 4,052
06-10-22 조회 8,897
06-10-21 조회 3,733
06-10-20 조회 9,575
06-10-20 조회 4,261
06-10-19 조회 4,309
06-10-19 조회 3,672
06-10-19 조회 2,816
06-10-19 조회 3,106
06-10-18 조회 3,655