게시글 제목에 자동으로 여분필드 값이 들어가게 하고 싶습니다.
본문
안녕하세요.
제목을 굳이 쓸 필요없는 게시판이 있어서
글 제목을 여분필드의 값이 주루륵 들어가게 하고 싶어서 아래와 같이 작업 해 보았습니다.
</form> 바로 위에
<input type="hidden" name="wr_subject" value="<?php echo $write['wr_1'] ?> <?php echo number_format($write['wr_3']) ?>만원 (<?php echo $write['ca_name'];?>_<?php echo $write['wr_4'] ?>) <?php echo $year[0];?>-<?php echo $year[1];?> <?php echo $board['bo_subject'] ?>" id="wr_subject">
라고 써놓았더니 글을 처음에 작성하면 글 제목이 제대로 들어가지 않고 꼭 수정을 해야만 제대로 글 제목이 들어가서 아래와 같이
function fwrite_submit(f) {
바로 아래에 추가하였습니다.
f.wr_subject.value = f.wr_1.value +' '+f.wr_3.value +' '+f.ca_name.value +'만원 '+ f.wr_4.value +' '+ f.year[0].value+'-'+ f.year[1].value ;
이렇게 했더니 느닷없이 "글 내용을 입력하세요" 라고 경고창이 뜨면서 글이 등록이 안되고 있습니다.
어디를 수정해야 할까요?
고수님들 부탁 드립니다. 감사합니다!
!-->!-->답변 2
$write['wr_1']은 DB에 저장된 이후(글 등록된 이후)에 불러오는 값입니다.
즉, 이미 저장된 글의 데이터를 의미합니다.
그래서 글 등록시에는 빈값이고, 글 수정시에만 정상 작동한 것입니다.
더 권장되는 방법은 write_update.head.skin.php 파일을 활용하는 것입니다.
write_update.head.skin.php 파일 생성 후 다음 코드 추가
<?php
if (!defined('_GNUBOARD_')) exit;
// 제목 자동 생성
$auto_subject = '';
if($wr_1) $auto_subject .= $wr_1 . ' ';
if($wr_3) $auto_subject .= number_format($wr_3) . '만원 ';
if($ca_name && $wr_4) $auto_subject .= '(' . $ca_name . '_' . $wr_4 . ') ';
// 년도 필드 추가 (실제 필드명에 맞게 수정)
$auto_subject .= $board['bo_subject'];
$wr_subject = $auto_subject;
질문하신 '글 내용을 입력하세요' 경고창이 나오는 문제는
<input type="hidden" name="wr_content" value="적당한 문자">
이걸 추가하면 될 것입니다.
아래 글입력 부분은 삭제하시고요.
물론 글입력을 안해도 되도록 해도 되지만 설정을 바꾸는것 보다는 이게 나을거 같네요.
근데 $write값이 없어서 어차피 wr_1에 값이 입력 안될거 같은데
$write 변수는 글을 저장하고 저장된 값들을 변수에 저장합니다.
처음 글입력할 때는 $write변수는 비어있죠
제가 주로 쓰는 방법은
1. 해당 게시판의 스킨을 별도로 추가하고 (예를 들어 qwer 폴더를 만들어 qwer 스킨을 적용
2. 해당 스킨폴더로 가서 (테마를 사용안한다고하면) /skin/board/qwer/ 에
write_update.skin.php 파일을 추가합니다.
그리고 write_update.skin.php 내용은 생각나는대로 적자면... (실행은 안해봄)
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
//$bo_table 은 테이블 이름
$target_table = $g5['write_prefix'] . $bo_table;
$wr_1 = $wr_1.' '.number_format($wr_3).'만원 ('.$ca_name.'_'.$wr_4.') '.$year[0].'-'.$year[1].' '.$board['bo_subject'];
$update_sql = "UPDATE {$target_table} SET wr_1 = '{$wr_1}' WHERE wr_id = '{$wr_id}'";
$update = sql_query($update_sql);
이렇게 하면 될꺼 같고
$wr_1 변수값은 맞는지는 모르겠네요. 적당히 수정하시길