분할된 필드들이 저장이 되지 않네요. 뭐가 잘 못되었을까요?
아래는 write.skin.php 파일입니다.
Copy
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
//문자열 나누기
$row = mysql_fetch_array($result2);
$tmp_txt = $row[0];
$option_arr = explode(",",$tmp_txt);
$wr_2 = explode("|", $write['wr_2']);
$wr_3 = explode("|", $write['wr_3']);
$wr_4 = explode("|", $write['wr_4']);
$wr_5 = explode("|", $write['wr_5']);
$wr_6 = explode("|", $write['wr_6']);
$wr_7 = explode("|", $write['wr_7']);
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
?>
<div style="width:100%;min-height:900px;float:left;border-left:1.8px solid #dde4e9;">
<div style="">
<div style="width:90%;padding-left:70px">
<div style="padding-top:40px;">
<section id="bo_w">
<h2 id="container_title"><?php echo $g5['title'] ?></h2>
<!-- 게시물 작성/수정 시작 { -->
<form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off" style="width:<?php echo $width; ?>">
<input type="hidden" name="uid" value="<?php echo get_uniqid(); ?>">
<input type="hidden" name="w" value="<?php echo $w ?>">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
<input type="hidden" name="wr_id" value="<?php echo $wr_id ?>">
<input type="hidden" name="sca" value="<?php echo $sca ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="spt" value="<?php echo $spt ?>">
<input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="page" value="<?php echo $page ?>">
<?php
$option = '';
$option_hidden = '';
if ($is_notice || $is_html || $is_secret || $is_mail) {
$option = '';
if ($is_notice) {
$option .= "\n".'<input type="checkbox" id="notice" name="notice" value="1" '.$notice_checked.'>'."\n".'<label for="notice">공지</label>';
}
if ($is_html) {
if ($is_dhtml_editor) {
$option_hidden .= '<input type="hidden" value="html1" name="html">';
} else {
$option .= "\n".'<input type="checkbox" id="html" name="html" onclick="html_auto_br(this);" value="'.$html_value.'" '.$html_checked.'>'."\n".'<label for="html">html</label>';
}
}
if ($is_secret) {
if ($is_admin || $is_secret==1) {
$option .= "\n".'<input type="checkbox" id="secret" name="secret" value="secret" '.$secret_checked.'>'."\n".'<label for="secret">비밀글</label>';
} else {
$option_hidden .= '<input type="hidden" name="secret" value="secret">';
}
}
if ($is_mail) {
$option .= "\n".'<input type="checkbox" id="mail" name="mail" value="mail" '.$recv_email_checked.'>'."\n".'<label for="mail">답변메일받기</label>';
}
}
echo $option_hidden;
?>
<div class="tbl_frm01 tbl_wrap">
<table>
<tbody>
<?php if ($is_name) { ?>
<tr>
<th scope="row"><label for="wr_name">이름<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="wr_name" value="<?php echo $name ?>" id="wr_name" required class="frm_input required" size="10" maxlength="20"></td>
</tr>
<?php } ?>
<?php if ($is_password) { ?>
<tr>
<th scope="row"><label for="wr_password">비밀번호<strong class="sound_only">필수</strong></label></th>
<td><input type="password" name="wr_password" id="wr_password" <?php echo $password_required ?> class="frm_input <?php echo $password_required ?>" maxlength="20"></td>
</tr>
<?php } ?>
<?php if ($is_email) { ?>
<tr>
<th scope="row"><label for="wr_email">이메일</label></th>
<td><input type="text" name="wr_email" value="<?php echo $email ?>" id="wr_email" class="frm_input email" size="50" maxlength="100"></td>
</tr>
<?php } ?>
<?php if ($is_homepage) { ?>
<tr>
<th scope="row"><label for="wr_homepage">홈페이지</label></th>
<td><input type="text" name="wr_homepage" value="<?php echo $homepage ?>" id="wr_homepage" class="frm_input" size="50"></td>
</tr>
<?php } ?>
<?php if ($is_category) { ?>
<tr>
<th scope="row"><label for="ca_name">신청구분<strong class="sound_only">필수</strong></label></th>
<td>
<select name="ca_name" id="ca_name" required class="required" >
<option value="">선택하세요</option>
<?php echo $category_option ?>
</select>
</td>
</tr>
<?php } ?>
<tr>
<th scope="row"><label for="wr_subject">단체명<strong class="sound_only">필수</strong></label></th>
<td>
<div id="autosave_wrapper">
<input type="text" name="wr_subject" value="<?php echo $subject ?>" id="wr_subject" required class="frm_input required" size="50" maxlength="255">
<?php if ($is_member) { // 임시 저장된 글 기능 ?>
<script src="<?php echo G5_JS_URL; ?>/autosave.js"></script>
<?php if($editor_content_js) echo $editor_content_js; ?>
<button type="button" id="btn_autosave" class="btn_frmline">임시 저장된 글 (<span id="autosave_count"><?php echo $autosave_count; ?></span>)</button>
<div id="autosave_pop">
<strong>임시 저장된 글 목록</strong>
<div><button type="button" class="autosave_close"><img src="<?php echo $board_skin_url; ?>/img/btn_close.gif" alt="닫기"></button></div>
<ul></ul>
<div><button type="button" class="autosave_close"><img src="<?php echo $board_skin_url; ?>/img/btn_close.gif" alt="닫기"></button></div>
</div>
<?php } ?>
</div>
</td>
</tr>
<tr>
<th scope="row"><label for="wr_1">행사명</label></th>
<td><input type="text" name="wr_1" value="<?php echo $wr_1 ?>" id="wr_1" class="frm_input required" size="100" required></td>
</tr>
<tr>
<th scope="row"><label for="wr_6">시설명</label></th>
<td><input type=checkbox name='wr_6[0]' id='wr_6[0]' value='본관A' onclick="calculate_fee();" <?if($wr_6[0]=='본관A') echo "checked";?>> 본관A
<input type=checkbox name='wr_6[1]' id='wr_6[1]' value='본관B' onclick="calculate_fee();" <?if($wr_6[1]=='본관B') echo "checked";?>> 본관B
<input type=checkbox name='wr_6[2]' id='wr_6[2]' value='호수동A' onclick="calculate_fee();" <?if($wr_6[2]=='호수동A') echo "checked";?>> 호수동A
<input type=checkbox name='wr_6[3]' id='wr_6[3]' value='호수동B' onclick="calculate_fee();" <?if($wr_6[3]=='호수동B') echo "checked";?>> 호수동B
<input type=checkbox name='wr_6[4]' id='wr_6[4]' value='갈릴래아' onclick="calculate_fee();" <?if($wr_6[4]=='갈릴래아') echo "checked";?>> 갈릴래아
<input type=checkbox name='wr_6[5]' id='wr_6[5]' value='통나무' onclick="calculate_fee();" <?if($wr_6[5]=='통나무') echo "checked";?>> 통나무
<input type=checkbox name='wr_6[6]' id='wr_6[6]' value='초입동' onclick="calculate_fee();" <?if($wr_6[6]=='초입동') echo "checked";?>> 초입동
<input type=checkbox name='wr_6[7]' id='wr_6[7]' value='피정의집' onclick="calculate_fee();" <?if($wr_6[7]=='피정의집') echo "checked";?>> 피정의집
<input type=checkbox name='wr_6[8]' id='wr_6[8]' value='캠피장A사이트' onclick="calculate_fee();" <?if($wr_6[8]=='캠피장A사이트') echo "checked";?>> 캠피장A사이트
<input type=checkbox name='wr_6[9]' id='wr_6[9]' value='캠핑장B사이트' onclick="calculate_fee();" <?if($wr_6[9]=='캠핑장B사이트') echo "checked";?>>캠핑장B사이트
<input type=checkbox name='wr_6[10]' id='wr_6[10]' value='캠핑장C사이트' onclick="calculate_fee();" <?if($wr_6[10]=='캠핑장C사이트') echo "checked";?>> 캠핑장C사이트
</td>
</tr>
<tr>
<th scope="row"><label for="wr_7">이용일자</label></th>
<td> <input type="text" name="wr_7[0]" value='<?php echo $wr_7[0] ;?>' id="wr_7_[0]" class="frm_input required" size="10" required>
~ <input type="text" name="wr_7[1]" value='<?php echo $wr_7[1] ;?>' id="wr_7_[1]" class="frm_input required" size="10" required>
</td>
</tr>
<tr>
<th scope="row"><label for="wr_2">인원</label></th>
<td>
유치부 : <input type="text" name="wr_2[0]" value="<?php echo $wr_2[0] ;?>" id="wr_2[0]" class="frm_input required" size="3" required>명,
초등부 : <input type="text" name="wr_2[1]" value="<?php echo $wr_2[1] ;?>" id="wr_2[1]" class="frm_input required" size="3" required>명,
중등부 : <input type="text" name="wr_2[2]" value="<?php echo $wr_2[2] ;?>" id="wr_2[2]" class="frm_input required" size="3" required>명,
고등부 : <input type="text" name="wr_2[3]" value="<?php echo $wr_2[3] ;?>" id="wr_2[3]" class="frm_input required" size="3" required>명,
청년(25세이하) : <input type="text" name="wr_2[4]" value="<?php echo $wr_2[4] ;?>" id="wr_2[4]" class="frm_input required" size="3" required>명,
성인(26세이상) : <input type="text" name="wr_2[5]" value="<?php echo $wr_2[5] ;?>" id="wr_2[5]" class="frm_input required" size="3" required>명
</td>
</tr>
<tr>
<th scope="row"><label for="wr_3">부가사용</label></th>
<td>
<input type=checkbox name='wr_3[0]' id='wr_3[0]' value='팀빌딩,로우코스' onclick="calculate_fee();" <?if($wr_3[0]=='팀빌딩,로우코스') echo "checked";?>> 팀빌딩,로우코스
<input type=checkbox name='wr_3[1]' id='wr_3[1]' value='짚라인' onclick="calculate_fee();" <?if($wr_3[1]=='짚라인') echo "checked";?>> 짚라인
<input type=checkbox name='wr_3[2]' id='wr_3[2]' value='오리엔티어링' onclick="calculate_fee();" <?if($wr_3[2]=='오리엔티어링') echo "checked";?>> 오리엔티어링
</td>
</tr>
<tr>
<th scope="row"><label for="wr_4">식사구분</label></th>
<td>
<input type=checkbox name='wr_4[0]' id='wr_4[0]' value='전체위탁' onclick="calculate_fee();" <?if($wr_4[0]=='전체위탁') echo "checked";?>> 전체위탁
<input type=checkbox name='wr_4[1]' id='wr_4[1]' value='부분위탁' onclick="calculate_fee();" <?if($wr_4[1]=='부분위탁') echo "checked";?>> 부분위탁
<input type=checkbox name='wr_4[2]' id='wr_4[2]' value='자체취사' onclick="calculate_fee();" <?if($wr_4[2]=='자체취사') echo "checked";?>> 자체취사 <br>
식사신청(부분위탁 또는 자체취사를 선택한 경우) : <input type="number" name="wr_4[3]" value="<?php echo $wr_4[4] ?>" id="wr_4[4]" class="frm_input" size="4">끼 (※ 생활관과 피정센터는 1박3식을 기본 대관조건으로 하는 시설임)
</td>
</tr>
<tr>
<th scope="row"><label for="wr_8">마당사용</label></th>
<td>
<?php echo $wr_8;?>
<?php if($w == ""){?>
<input type="radio" name="wr_8" value="유" id="wr_8" class="frm_input" checked> <label>유</label>
<input type="radio" name="wr_8" value="무" id="wr_8" class="frm_input"> <label>무</label>
<?php }else if($w == "u"){?>
<input type="radio" name="wr_8" value="유" id="wr_8" class="frm_input" <?php echo get_checked($wr_8,"유");?>> <label>유</label>
<input type="radio" name="wr_8" value="무" id="wr_8" class="frm_input" <?php echo get_checked($wr_8,"무");?>> <label>무</label>
<?php }?>
</td>
</tr>
<tr>
<th scope="row"><label for="wr_5">오시는 교통편</label></th>
<td>
<input type=checkbox name='wr_5[0]' id='wr_5_1' value='대중교통' onclick="calculate_fee();" <?if($wr_5[0]=='대중교통') echo "checked";?>> 대중교통
<input type=checkbox name='wr_5[1]' id='wr_5_2' value='개인승용차' onclick="calculate_fee();" <?if($wr_5[1]=='개인승용차') echo "checked";?>> 개인승용차
<input type=checkbox name='wr_5[2]' id='wr_5_3' value='자체버스' onclick="calculate_fee();" <?if($wr_5[2]=='자체버스') echo "checked";?>> 자체버스 <br>
개인승용차 : <input type="number" name="wr_5[3]" value="<?php echo $wr_5[3] ?>" id="wr_5[3]" class="frm_input" size="4">대,
자체버스 : <input type="number" name="wr_5[4]" value="<?php echo $wr_5[4] ?>" id="wr_5[4]" class="frm_input" size="4">대
</td>
</tr>
<tr>
<th scope="row"><label for="wr_content">메모<strong class="sound_only">필수</strong></label></th>
<td class="wr_content">
<?php if($write_min || $write_max) { ?>
<!-- 최소/최대 글자 수 사용 시 -->
<p id="char_count_desc">이 게시판은 최소 <strong><?php echo $write_min; ?></strong>글자 이상, 최대 <strong><?php echo $write_max; ?></strong>글자 이하까지 글을 쓰실 수 있습니다.</p>
<?php } ?>
<?php echo $editor_html; // 에디터 사용시는 에디터로, 아니면 textarea 로 노출 ?>
<?php if($write_min || $write_max) { ?>
<!-- 최소/최대 글자 수 사용 시 -->
<div id="char_count_wrap"><span id="char_count"></span>글자</div>
<?php } ?>
</td>
</tr>
<?php for ($i=0; $is_file && $i<$file_count; $i++) { ?>
<tr>
<th scope="row">파일 #<?php echo $i+1 ?></th>
<td>
<input type="file" name="bf_file[]" title="파일첨부 <?php echo $i+1 ?> : 용량 <?php echo $upload_max_filesize ?> 이하만 업로드 가능" class="frm_file frm_input">
<?php if ($is_file_content) { ?>
<input type="text" name="bf_content[]" value="<?php echo ($w == 'u') ? $file[$i]['bf_content'] : ''; ?>" title="파일 설명을 입력해주세요." class="frm_file frm_input" size="50">
<?php } ?>
<?php if($w == 'u' && $file[$i]['file']) { ?>
<input type="checkbox" id="bf_file_del<?php echo $i ?>" name="bf_file_del[<?php echo $i; ?>]" value="1"> <label for="bf_file_del<?php echo $i ?>"><?php echo $file[$i]['source'].'('.$file[$i]['size'].')'; ?> 파일 삭제</label>
<?php } ?>
</td>
</tr>
<?php } ?>
<?php if ($is_guest) { //자동등록방지 ?>
<tr>
<th scope="row">자동등록방지</th>
<td>
<?php echo $captcha_html ?>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
<div class="btn_confirm">
<input type="submit" value="작성완료" id="btn_submit" accesskey="s" class="btn_submit">
<a href="./board.php?bo_table=<?php echo $bo_table ?>" class="btn_cancel">취소</a>
</div>
</form>
</div>
</div>
</div>
</div>
<div style="clear:both;"></div>
<script>
<?php if($write_min || $write_max) { ?>
// 글자수 제한
var char_min = parseInt(<?php echo $write_min; ?>); // 최소
var char_max = parseInt(<?php echo $write_max; ?>); // 최대
check_byte("wr_content", "char_count");
$(function() {
$("#wr_content").on("keyup", function() {
check_byte("wr_content", "char_count");
});
});
<?php } ?>
function html_auto_br(obj)
{
if (obj.checked) {
result = confirm("자동 줄바꿈을 하시겠습니까?\n\n자동 줄바꿈은 게시물 내용중 줄바뀐 곳을<br>태그로 변환하는 기능입니다.");
if (result)
obj.value = "html2";
else
obj.value = "html1";
}
else
obj.value = "";
}
function fwrite_submit(f)
{
<?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함 ?>
var subject = "";
var content = "";
$.ajax({
url: g5_bbs_url+"/ajax.filter.php",
type: "POST",
data: {
"subject": f.wr_subject.value,
"content": f.wr_content.value
},
dataType: "json",
async: false,
cache: false,
success: function(data, textStatus) {
subject = data.subject;
content = data.content;
}
});
if (subject) {
alert("제목에 금지단어('"+subject+"')가 포함되어있습니다");
f.wr_subject.focus();
return false;
}
if (content) {
alert("내용에 금지단어('"+content+"')가 포함되어있습니다");
if (typeof(ed_wr_content) != "undefined")
ed_wr_content.returnFalse();
else
f.wr_content.focus();
return false;
}
if (document.getElementById("char_count")) {
if (char_min > 0 || char_max > 0) {
var cnt = parseInt(check_byte("wr_content", "char_count"));
if (char_min > 0 && char_min > cnt) {
alert("내용은 "+char_min+"글자 이상 쓰셔야 합니다.");
return false;
}
else if (char_max > 0 && char_max < cnt) {
alert("내용은 "+char_max+"글자 이하로 쓰셔야 합니다.");
return false;
}
}
}
<?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 ?>
document.getElementById("btn_submit").disabled = "disabled";
return true;
}
</script>
</section>
<!-- } 게시물 작성/수정 끝 -->
다음은 write_update.skin.php 파일입니다.
Copy
<?
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
//필드 나눔 정의
$wr_2 = '';
for($k=0; $k<count($_POST['wr_2']); $k++) {
$wr_2.= $_POST['wr_2'][$k].'|';
}
$wr_3 = '';
for($k=0; $k<count($_POST['wr_3']); $k++) {
$wr_3.= $_POST['wr_3'][$k].'|';
}
$wr_4 = '';
for($k=0; $k<count($_POST['wr_4']); $k++) {
$wr_4.= $_POST['wr_4'][$k].'|';
}
$wr_5 = '';
for($k=0; $k<count($_POST['wr_5']); $k++) {
$wr_5.= $_POST['wr_5'][$k].'|';
}
$wr_6 = '';
for($k=0; $k<count($_POST['wr_6']); $k++) {
$wr_6.= $_POST['wr_6'][$k].'|';
}
$wr_7 = '';
for($k=0; $k<count($_POST['wr_7']); $k++) {
$wr_7.= $_POST['wr_7'][$k].'|';
}
?>
?>
답변 3개 / 댓글 3개
채택된 답변
+20 포인트
2017-12-29 (금) 09:06:58
일반 여분필드를 배열로 저장하려면
해당 스킨의 write_update.skin.php 파일에서 넣는다고 안들어갑니다.
bbs/write_update.php 파일의 상단에 이렇게 추가해보세요
Copy
if($bo_table=='게시판명'){
$_POST["wr_2"] = implode("|",$_POST["wr_2"]);
$_POST["wr_3"] = implode("|",$_POST["wr_3"]);
$_POST["wr_4"] = implode("|",$_POST["wr_4"]);
$_POST["wr_5"] = implode("|",$_POST["wr_5"]);
$_POST["wr_6"] = implode("|",$_POST["wr_6"]);
$_POST["wr_7"] = implode("|",$_POST["wr_7"]);
}
그리고 해당 게시판 스킨경로의 write_update.skin.php 파일에는 아래와같이 작성합니다.
Copy
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
if(!$wr_comment) { // 코멘일때는 저장하면 안됨.
$sql = " update $write_table
set wr_1 = '$wr_1',
wr_2 = '$wr_2',
wr_3 = '$wr_3',
wr_4 = '$wr_4',
wr_5 = '$wr_5',
wr_6 = '$wr_6',
wr_7 = '$wr_7',
wr_8 = '$wr_8',
wr_9 = '$wr_9',
wr_10 = '$wr_10'
where wr_id = '$wr_id' " ;
sql_query($sql);
}
답변에 대한 댓글 1개
2017-12-29 (금) 13:44:15
2017-12-28 (목) 23:32:39
$sql = sql_query("UPDATE #table SET wr_2 = '".$wr_2."', wr_3 = '".$wr_3."', wr_4 = '".$wr_4."', wr_5 = '".$wr_5."', wr_6 = '".$wr_6."', wr_7 = '".$wr_7."' WHERE wr_id = ".$wr_id);
write_update.skin.php 파일에서 디비에 넣는 작업하셨나요?
답변에 대한 댓글 1개
2017-12-28 (목) 18:38:15
count($_POST['wr_2']) 이렇게 가져오는 부분에 제대로 배열로 넘어오고 있는지 echo로 찍어 체크해 보세요
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.
선택하지 않은 것이 나타나지 않는 관계로 순서가 바뀌는 단점이 있네요. 예를 들면 식사구분에서 "위탁" "부분위탁" "자체취사" 식사추가 ( )끼 이 런 경우 다 선택하지 않고 한 두개 만 선택하면 식사추가 숫자가 엉뚱한 곳에 나타납니다.