테스트 사이트 - 개발 중인 베타 버전입니다

게시판 2단 분류

// 관리자에서 1차 카타고리 등록 : 과일|도시
// 2차 분류는 여분필드 wr_1 사용

// /skin/board/basic/list.skin.php 하단 삽입
<script>
var cate = [];
var cate1 = '';
var m = /(stx=)(.+)/.exec(location.href);
var cate2 = m ? decodeURIComponent(m[2]) : ''; // 2차 분류값
var html = '';

cate['과일'] = ['사과', '복숭아', '포도'];
cate['도시'] = ['서울', '부산', '대구'];

$('#bo_cate_ul li').each( function(i) {
var val = $(this).text();
var k = i ? val : '';
var selected = '';

if (val.indexOf('열린 분류 ') > -1) {
selected = 'selected';
val = val.replace(/열린 분류 /, '');
cate1 = val;
}
html += '<option value="' + k + '"' + selected + '>' + val + '</option>';
})

$('#bo_cate_ul').html('<select name="sca" id="sca">' + html + '</select');
$('#sca').after(' <span id="cate2"></span> <input type="button" id="cate_sh" value="검색" />');

// 1차분류 선택
if (location.href.indexOf('sfl=wr_1&stx=') > -1) {
for (var i in cate) {
if (cate[i].indexOf(cate2) > -1) {
$('#sca').val(i);
cate1 = i;
break;
}
}
}

getCate(cate1, cate2);

// 2차 분류
function getCate(cate1, cate2 = '') {
if (!cate1) return;
var html = '<select name="wr_1" id="wr_1"><option value="">전체</option>';
for (var j in cate[cate1]) {
var val = cate[cate1][j], selected = val == cate2 ? 'selected' : '';
html += '<option value="' + val + '"' +selected + '>' + val + '</option>';
}
$('#cate2').html(html + '</select>');
}

$('#sca').on('change', function() {
getCate(this.value);
});

$('#cate_sh').on('click', function() {
if ($('#wr_1').val())
location.href = location.href.replace(/&(sfl|stx|sca)=[^&]+/g, '') + '&sfl=wr_1&stx=' + $('#wr_1').val();
else
location.href = location.href.replace(/&(sfl|stx|sca)=[^&]+/g, '') + '&sca=' + $('#sca').val();
});
</script>



// /skin/board/basic/write.skin.php 하단 삽입
<script>
var cate = [], cate1 = '<?php echo $ca_name ?>', cate2 = '<?php echo $wr_1 ?>';

cate['과일'] = ['사과', '복숭아', '포도'];
cate['도시'] = ['서울', '부산', '대구'];
$('#ca_name').after(' <span id="cate2"></span>');
getCate(cate1, cate2);

// 2차 분류
function getCate(cate1, cate2 = '') {
if (!cate1) return;
var html = '<select name="wr_1" id="wr_1"><option value="">전체</option>';
for (var j in cate[cate1]) {
var val = cate[cate1][j], selected = val == cate2 ? 'selected' : '';
html += '<option value="' + val + '"' +selected + '>' + val + '</option>';
}
$('#cate2').html(html + '</select>');
}

$('#ca_name').on('change', function() {
getCate(this.value);
});
</script>

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 15개

찾고 있었는데 감사합니다.
정말 좋은 팁입니다.
슈와이님 좋은자료 감사합니다^^

한가지 문의 드립니다

게시판2단 분류를
3단 이나 4단... 등 여러개의 분류를 더 추가하여
여러개 분류 사용 할수 있을까요?
가능하다면 어떻게 적욘 할수 있을까요?
감사합니다^^*
좋은자료 감사드립니다.
여분필드 wr_1을 사용하고 있을 경우는 다른 필드를 사용하면 되는지요?
이럴 수가 좋아요가 안 눌리다니....! 유용하게 사용했습니다. 감사합니다^^
멋진자룝입니다. 감사합니다^^
Not Found
The requested URL /&sfl=wr_1&stx=사과 was not found on this server.

위와 똑같이 적용 하여 검색을 누르니 이런 에러가 나오네요.. 혹시 어떤것을 수정해야 할런지요
여분필드에 값을 넣어주니.. 제대로 작동을 하네요.. ^^ 감사합니다. 해결 되었습니다.
너무 좋아요
좋은 팁 감사합니다.
2차분류값이 db에는 저장되어있는데,
글 수정하기에서는 기존에 입력한 2차분류가 선택되어있지않고, 전체로 되어있어요.
선택된 2차분류값이 글 수정하기시에 2차분류값이 선택되어있게 할 수는 없나요

게시판 목록

그누보드5 팁자료실

글쓰기