그누커머스 동적선택
본문
안녕하세요
write.skin.php에 아래와 같이 동적 다중선택을 구현했는데
제목에 wr_1 과 wr_subject 가 동시에 출력되게 할려면 어떻게 해야 할까요?
data: {
"action": "gc_bss_filter",
"subject": f.wr_subject.value,
"content": f.wr_content.value 이쪽을 건들여야 할것같은데 도무지 모르겠네요...
-------------------------------------------------------------------------------------
<script type="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<select name="wr_1" id="wr_1">
<option value="">선택</option>
<option value="000">000</option>
<option value="111">111</option>
<option value="222">222</option>
<option value="333">333</option>
<option value="444">444</option>
</select>
<script>
$("#wr_1").change(function() {
var idx = $(this).children(":selected").index();
$("select[name=wr_subject]").empty().html("<option value=\"\">선택</option>").attr("disabled",true);
if (idx == "1") {
$("select[name=wr_subject]").attr("disabled",false).html("<option value=\"\">선택</option><option value=\"ㄱㄱㄱ\">ㄱㄱㄱ</option><option value=\"ㄴㄴㄴ\">ㄴㄴㄴ</option><option value=\"ㄷㄷㄷ\">ㄷㄷㄷ</option><option value=\"ㄹㄹㄹ\">ㄹㄹㄹ</option>");
}
if (idx == "2") {
$("select[name=wr_subject]").attr("disabled",false).html("<option value=\"\">선택</option><option value=\"ㅛㅛㅛ\">ㅛㅛㅛ</option><option value=\"ㅜㅜㅜ\">ㅜㅜㅜ</option><option value=\"ㅓㅓㅓ\">ㅓㅓㅓ</option><option value=\"ㅑㅑㅑ\">ㅑㅑㅑ</option><option value=\"ㅣㅣㅣ\">ㅣㅣㅣ</option><option value=\"ㅏㅏㅏ\">ㅏㅏㅏ</option><option value=\"ㅔㅔㅔ\">ㅔㅔㅔ</option>");
}
if (idx == "3") {
$("select[name=wr_subject]").attr("disabled",false).html("<option value=\"\">선택</option><option value=\"aaa\">aaa</option><option value=\"bbb\">bbb</option><option value=\"ccc\">ccc</option><option value=\"ddd\">ddd</option><option value=\"eee\">eee</option>");
}
if (idx == "4") {
$("select[name=wr_subject]").attr("disabled",false).html("<option value=\"\">선택</option><option value=\"qqq\">qqq</option><option value=\"www\">www</option><option value=\"eee\">eee</option><option value=\"rrr\">rrr</option><option value=\"ttt\">ttt</option><option value=\"aaa\">aaa</option>");
}
if (idx == "5") {
$("select[name=wr_subject]").attr("disabled",false).html("<option value=\"\">선택</option><option value=\"111\">111</option><option value=\"222\">222</option><option value=\"333\">333</option><option value=\"444\">444</option><option value=\"555\">555</option><option value=\"666\">666</option><option value=\"777\">777</option><option value=\"888\">888</option>");
}
});
</script>
<select name="wr_subject"id="wr_subject"disabled="disabled">
<option value="">선택</option>
</select>
답변 1
게시판 목록 화면과 글 보기 화면에서
제목에 wr_1 과 wr_subject 가 동시에 출력되게 할려고 한다는 말씀이시죠?
그렇게 할려면 먼저
글 등록을 했을 때
wr_1 값을 meta_table 에 저장을 해야 합니다.
하는 방법은
템플릿 오버라이딩 ( 덮어쓰기 ) 방식을 이용하여
hook.skin.php 를 아래와 같이 수정합니다.
add_action('write_update_metadata', 'write_custom_meta_hook', 10, 2); //글을 쓰거나 글을 수정할때 쓰는 hook
function write_custom_meta_hook($wr_id, $w){
if( $w == '' ){ //글 입력
} else if ($w == 'u') { //글 수정
}
//메타데이터
$etc_array = array();
$input_posts = array(
'wr_1', //여분필드1
'wr_2', //여분필드2
'wr_3', //여분필드3
'wr_4', //여분필드4
'wr_5', //여분필드5
'wr_6', //여분필드6
'wr_7', //여분필드7
'wr_8', //여분필드8
);
foreach( $input_posts as $p ){
$etc_array[$p] = isset($_POST[$p]) ? sanitize_text_field($_POST[$p]) : '';
}
update_metadata( GCBOARD_META_TYPE, $wr_id, 'etc_inputs', $etc_array ); //메타데이터를 업데이트
}
저장된 wr_1 를 list.skin.php 에서 출력하려면
<?php echo $list[$i]['subject'] ?>
위와 같은 코드를 찾아서 아래와 같이 수정합니다. ( 반드시 템플릿 오버라이딩 방식을 이용하여 수정하세요. )
<?php
$input_posts = get_metadata(GCBOARD_META_TYPE, $list[$i]['wr_id'], 'etc_inputs', true );
$wr_1 = isset($input_posts['wr_1']) ? $input_posts['wr_1'] : '';
echo $wr_1.$list[$i]['subject'];
?>
저장된 wr_1 을 view.skin.php 에서 출력하려면
echo gc_cut_str(gc_get_text($view['wr_subject']), 70); // 글제목 출력
위와 같은 코드를 찾아서 아래와 같이 수정합니다. ( 반드시 템플릿 오버라이딩 방식을 이용하여 수정하세요. )
<?php
$input_posts = get_metadata(GCBOARD_META_TYPE, $view['wr_id'], 'etc_inputs', true );
$wr_1 = isset($input_posts['wr_1']) ? $input_posts['wr_1'] : '';
echo $wr_1.gc_cut_str(gc_get_text($view['wr_subject']), 70); // 글제목 출력
?>