게시판 2단 분류

· 2017-03-02 (목) 18:39:40 · 11223 · 15
// 관리자에서 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개

찾고 있었는데 감사합니다.
정말 좋은 팁입니다.
2017-03-09 (목) 23:34:50
슈와이님 좋은자료 감사합니다^^

한가지 문의 드립니다

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

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

그누보드5 팁자료실

2,788건
+
제목 글쓴이 날짜 조회
17-03-12 조회 7,668
17-03-09 조회 6,692
17-03-08 조회 8,912
17-03-08 조회 6,697
17-03-07 조회 8,435
17-03-06 조회 8,556
17-03-05 조회 5,903
17-03-04 조회 6,675
17-03-03 조회 6,925
17-03-02 조회 7,857
17-03-02 조회 1.1만
17-02-28 조회 8,782
17-02-28 조회 6,897
17-02-28 조회 7,249
17-02-26 조회 7,333
17-02-24 조회 6,293
17-02-24 조회 7,317
17-02-23 조회 6,510
17-02-23 조회 7,116
17-02-22 조회 6,033
17-02-21 조회 9,780
17-02-21 조회 8,439
17-02-18 조회 5,624
17-02-16 조회 1만
17-02-16 조회 8,754
17-02-15 조회 8,464
17-02-14 조회 1.4만
17-02-13 조회 6,132
17-02-12 조회 6,506
17-02-07 조회 8,310