그누보드 게시글 작성중 select 관련 문의 입니다. 채택완료
글 작성시 selete 기능을 통해 아래의 내용을 추가하고자 합니다
</p>
<p> <select name='wr_1' disabled>
<option value='답변대기' selected><? if($write[wr_1] == 답변대기) echo "selected"; ?>답변대기</option>
<option value='답변완료'><? if($write[wr_1] == 답변완료) echo "selected"; ?>답변완료</option>
</select></p>
<p>
일반 유저가 글을 작성시 disabled를 통해 답변대기값을 defalut로 설정하여 인위적으로 답변완료를 선택못하게 한뒤 글을 작성하게 하려고 합니다. 이떄 관리자가 게시글에 답변을 한 다음 해당문의글의 수정버튼 클릭시 disabled 되어있는 select 항목을 풀고 관리자가 직접 답변완료를 선택한뒤 저장하게끔 기능을 설정하고 싶습니다. write.skin.php 파일에서 어떤식으로 코드를 작성하면 될지 노하우 공유좀 부탁드립니다.
답변 4개
</p>
<p><?php if ($is_admin) { ?>
<select name="wr_1">
<option value="답변대기" <?php if ($write['wr_1'] == '답변대기') echo "selected"; ?>>답변대기</option>
<option value="답변완료" <?php if ($write['wr_1'] == '답변완료') echo "selected"; ?>>답변완료</option>
</select>
<?php } else { ?>
<select name="wr_1">
<option value="답변대기" <?php if ($write['wr_1'] == '답변대기') echo "selected"; ?>>답변대기</option>
</select>
<?php } ?></p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
disabled 속성을 지정해도 사용자에 의한 조작으로 값은 넘길수 있습니다.
다음 코드는 값을 보내는 페이지 에서의 $is_admin 글로벌 변수를 활용해
관리자의 경우만 설정을 허용하는 방법입니다.
</p>
<p><?php if (empty($is_admin) == false) { ?></p>
<p> <select name='wr_1'>
<option value='답변대기' selected><?php if($write['wr_1'] == '답변대기') echo "selected"; ?>답변대기</option>
<option value='답변완료'><?php if($write['wr_1'] == '답변완료') echo "selected"; ?>답변완료</option>
</select>
<?php } ?></p>
<p>
값을 받는 페이지 에서도 유효성 체크를 하는 방법을 추천드립니다.
https://github.com/gnuboard/gnuboard5/blob/master/bbs/write_update.php#L134
@include_once($board_skin_path.'/write_update.head.skin.php');
또는
https://github.com/gnuboard/gnuboard5/blob/master/bbs/write_update.php#L136
run_event('write_update_before', $board, $wr_id, $w, $qstr);
</p>
<p><?php</p>
<p>if (empty($is_admin) == false) {</p>
<p> if ($wr_1 != '답변대기' && $wr_1 != '답변완료') {</p>
<p> $wr_1 = '답변대기';</p>
<p> }</p>
<p>} else {</p>
<p> $wr_1 = '답변대기';</p>
<p> if (isset($wr) == true && $wr['wr_1'] == '답변완료') {</p>
<p> $wr_1 = '답변완료';</p>
<p> }</p>
<p>}</p>
<p>?></p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인