멀티 카페고리관련하여 문의좀 드립니다.

· 13년 전 · 1401 · 1
12619-63aaf2849a1c76553318b5d943291cdf.png
일전에 질문을 올렸는데, 아직도 해결을 못하여 다시한번 올려봅니다.

http://sir.co.kr/bbs/board.php?bo_table=g4_plugin&wr_id=13175&sca=&sfl=wr_subject%7C%7Cwr_content&stx=%EC%B9%B4%ED%85%8C%EA%B3%A0%EB%A6%AC

이온프리님의 계층형 카테고리를 사용중인데요..

카테고리를 2개 또는 3개를 선택할수 있게 하려고합니다.

원하는 형태는 이미지로 첨부했습니다.

저모양대로 셀렉트가 작동만되면 차후 저장하거나 이런부분은 할수 있을것같은데,

저렇게 3개를 뿌리는거 자체가 너무 힘들어서 조언좀 얹고자합니다.

자바스크립트지식이 아주 짧거든요..ㅠㅠ

해당부분의 소스도 올려봅니다.


function write_input_select($ca_text)
{
global $bo_table,$__mc,$category_option;

if(is_object($__mc) && $__mc->bo_table==$bo_table){
}else{
echo '<select name=ca_name required itemname="분류"><option value="">선택하세요'.$category_option.'</select> ';
return;
}
$max = $__mc->getMaxDepth();
echo '
<script type="text/javascript">
var next_mc_obj = null;
var mc_select = function(obj,i)
{
var ajax = document.getElementById("opt-category-ajax");
var el = document.getElementById("ca-text");
var old_el_value = el.value;
var old_el_arr = (old_el_value || "").split(/-/);
var new_el_value = obj.value;
var new_el_arr = (new_el_value || "").split(/-/);
if(old_el_arr.length>new_el_arr.length){
var _el;
for(var j=i;j<' . ($max + 1) . ';j++)
{
_el = document.getElementById("mc_obj_"+(j+1));
if(_el){
_el.length=1;
_el.disabled="disabled";
}
}
}

if(obj.value=="" && old_el_value){
if(i>2) {
el.value = (old_el_value.split(/-/).slice(0,i-1).join("-"));
}else{
el.value = "";
}
}else{
el.value = obj.value;
}
if(obj.value==""){
return;
}
next_mc_obj = document.getElementById("mc_obj_"+(i+1));
if(next_mc_obj){
next_mc_obj.length=1;
if(document.getElementById("__opt__tmp__ajax")){
document.getElementsByTagName("head")[0].removeChild(document.getElementById("__opt__tmp__ajax"));
}
var _ajax = document.createElement("script");
_ajax.id="__opt__tmp__ajax";
_ajax.type = "text/javascript";
document.getElementsByTagName("head")[0].appendChild(_ajax);
_ajax.src = "/board/skin/multi_category/ajax.php?mode=list&bo_table=' . $bo_table . '&ca_name="+el.value+"&dummy="+(new Date().getTime() / 1000);
}else{
next_mc_obj = null;
}
}
</script>
<script id="opt-category-ajax" type="text/javascript"></script>
<input type="hidden" name="ca_name" id="ca-text" value="' . $ca_text . '"/>
';

$arr = explode('-', $ca_text);
$depth = count($arr);
for ($i = 2; $i <= $max + 1; $i++) {
$rows = array();
$disabled = '';

if ($i <= $depth + 1) {
$row = $__mc->get(join('-', array_slice($arr, 0, $i - 1)), 'ca_text');
$rows = $__mc->getChilds($row);
}

if (empty($rows)) {
$disabled = ' disabled="disabled"';
}
$check_txt = join('-', array_slice($arr, 0, $i));




echo '<select itemname=카테고리 onchange="mc_select(this,' . $i . ');"' . $disabled . ' id="mc_obj_' . $i . '">';
echo '<option value="">선택해 주세요</option>';

foreach ($rows as $row) {
$selected = $row->ca_text == $check_txt ? ' selected="selected"' : '';
echo '<option value="' . $row->ca_text . '"' . $selected . '>' . stripslashes($row->title) . '</option>';
}
echo '</select> ';
}
}
|

댓글 1개

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

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
13년 전 조회 1,547
13년 전 조회 818
13년 전 조회 766
13년 전 조회 1,008
13년 전 조회 1,261
13년 전 조회 981
13년 전 조회 944
13년 전 조회 789
13년 전 조회 792
13년 전 조회 1,402
13년 전 조회 814
13년 전 조회 796
13년 전 조회 1,545
13년 전 조회 998
13년 전 조회 1,016
13년 전 조회 917
13년 전 조회 2,429
13년 전 조회 1,562
13년 전 조회 981
13년 전 조회 3,742