| 제목 | 혹시 summernote 써보신 분 계신가요? 글 쓰기 시 내용이 입력이 안되네요.. | ||
|---|---|---|---|
| 글쓴이 | 정수킴 | 작성시각 | 2014/09/16 13:39:56 |
|
|
|||
|
http://hackerwins.github.io/summernote/ 라는 bootstrap 기반 위지윅 에디터를 사용하고 있습니다. 필요한 리소스(css/js)를 적용하고
<script type='text/javascript'>
$(function() {
$('.summernote').summernote({
height : 500
});
});
</script>
이렇게 해 준 다음, 요런식으로 textarea에다가 class를 붙여주면 됩니다
<div class="row">
<div class="col-md-12">
<textarea class="summernote" name="Contents" align="left"></textarea>
</div>
</div>
글 쓰기를 하면 글 내용 외에 다른 정보들은 정상적으로 디비에 저장이 되는데, 글쓰기만 저장이 안되네요 ㅠㅠ 그냥 terxtarea에 name에다가 Contents를 하면 정상적으로 저장이 됩니다. 혹시 제가 잘 못 알고 있는 부분이 있는지 봐주셨으면 감사하겠습니다. 모델은
function write_contents_announcements()
{
$this_date = date("Y-m-d H:i:s");
$hit = '0';
$data = array(
'BoardID' => $this->input->post('BoardID') ,
'BoardTypeID' => $this->input->post('BoardTypeID'),
'memberNUM' => $this->input->post('memberNUM'),
'UserName' => $this->input->post('UserName'),
'Subject' => $this->input->post('Subject'),
'Contents' => $this->input->post('Contents', true),
'FileName' => $this->input->post('FileName'),
'IsNotice' => $this->input->post('IsNotice'),
'IsHtml' => $this->input->post('IsHtml'),
'IsSecret' => $this->input->post('IsSecret'),
'Hit' => $this->input->post('Hit'),
'Ref' => $this->input->post('Ref'),
'Lev' => $this->input->post('Lev'),
'Pos' => $this->input->post('Pos'),
'RegDate' => date("Y-m-d H:i",time())
);
$result = $this->db->insert('boardweb', $data);
return $result;
}
이렇게 되어 있고 controller는
function contents_announcements_write() {
$this->load->view('admin/_head');
$this->load->view('admin/contents_announcements_write');
$this->load->view('admin/_tail');
}
function contents_announcements_write_post() {
$this->load->model('admin_model');
$data['result'] = $this->admin_model->write_contents_announcements();
redirect('/admin/contents_announcements_lists', 'refresh');
}
view는
<script src="//code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="<?=ADMIN_JS_DIR?>/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="<?= CSS_DIR?>/font-awesome.min.css">
<script type='text/javascript' src="<?= JS_DIR ?>/summernote.js"></script>
<link rel="stylesheet" type="text/css" href="<?= CSS_DIR ?>/summernote.css">
<link rel="stylesheet" type="text/css" href="<?= CSS_DIR?>/summernote-bs3.css">
<script type='text/javascript'>
$(function() {
$('.summernote').summernote({
height : 500
});
});
</script>
<script>
function submit_form() {
document.wform.submit();
}
</script>
<!-- /. NAV TOP -->
생략...
<!-- /. NAV SIDE -->
<div id="page-wrapper" >
<div id="page-inner">
<div class="row">
<div class="col-md-12">
<h2>컨텐츠 공지사항 글쓰기</h2>
</div>
</div>
<!-- /. ROW -->
<hr />
<form name="wform" method="POST" action="/admin/contents_announcements_write_post" enctype="multipart/form-data" onsubmit="return false;">
<div class="row">
<div class="col-md-12">
<!-- Advanced Tables -->
<div class="panel panel-default">
<div class="panel-heading">
|<a href="/admin/board">일반공지사항 </a> | <a href="/admin/contents_announcements_lists">컨텐츠공지사항</a> | <a href="/admin/data_room">자료실</a> | <a href="/admin/question_and_answer">질문과 답변</a> | <a href="#">제휴문의</a> |
</div>
<div class="panel-body">
<div class="table-responsive">
<table class="table table-bordered">
<thead>
<tr>
<th style="vertical-align: middle;" class="col-md-2">제목</th>
<th style="vertical-align: middle;" class="col-md-10">
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-th-large"></span></span>
<input type="text" name="Subject" class="form-control" maxlength="50" value="" />
</div>
</th>
</tr>
<tr>
<th style="vertical-align: middle;" class="col-md-2">작성자</th>
<th style="vertical-align: middle;" class="col-md-10">
<div class="input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-user"></span></span>
<input type="text" name="UserName" id="input" class="form-control" value="" pattern="" title="">
</div>
</th>
</tr>
<tr>
<th style="vertical-align: middle;" class="col-md-2">옵션</th>
<th style="vertical-align: middle;" class="col-md-4">
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-default active">
<input type="radio" name="IsNotice" id="1" value="1" checked>공개글
</label>
<label class="btn btn-default">
<input type="radio" name="IsSecret" id="1" value="1"> 비밀글
<input type="hidden" name="BoardTypeID" id="2" class="form-control" value="2">
<input type="hidden" name="memberNUM" id="10" class="form-control" value="10">
</label>
</div>
</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="2" style="padding: 5px;">
<div class="row">
<div class="col-md-12">
<textarea class="summernote" name="Contents" align="left"></textarea>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<button type="button" class="btn btn-lg col-md-offset-11 btn-success" onclick="submit_form();">저장</button>
</div>
</div>
</div>
<!--End Advanced Tables -->
</div>
</div>
</form>
</div>
</div>
<!-- /. PAGE INNER -->
</div>
이런식으로 되어있습니다. ㅠㅠ |
|||
| 다음글 | session flashdata 관련 질문입니다. (2) | ||
| 이전글 | post 사이즈 (1) | ||
|
한대승(불의회상)
/
2014/09/16 15:12:25 /
추천
0
|
|
헤덥
/
2014/09/16 15:39:35 /
추천
0
예전에 저도 붓스트렙 텍스트 에디터를 테스트삼아 써본기억이 나는데요
아마도 summernote 라는 클래스를 textarea 가 아닌 div 에 감싸야 되는게 아닌가 싶네요 메뉴얼 들어가보니 이렇게 돼어있네요 <div class="summernote">summernote 1</div> <div class="summernote">summernote 2</div> Then run summernote with jQuery selector. $(document).ready(function() { $('.summernote').summernote(); }); |
|
헤덥
/
2014/09/16 15:46:02 /
추천
0
컨텐츠 값을 가져오는거나 세팅하는법은 이렇게 돼있네요
var sHTML = $('.summernote').code(); Get the HTML content of the second summernote with jQuery eq. var sHTML = $('.summernote').eq(1).code(); A string of HTML to set as the content of each matched element.
$('.summernote').code(sHTML);
|
|
헤덥
/
2014/09/16 15:49:00 /
추천
0
Contents 라는 인풋타입을 하시고 싶으면
Input type 히든 네임 Contents 값 만드시고 id 값이나 class값 주시고 Jquery 에서 서브밋 시키기 전에 $("#Contents").val($('.summernote').code()) 이런식으로 값 주시면 될것 같은데
<script type='text/javascript'>
$(function() {
$('.summernote').summernote({
height : 500
});
$('버튼').on('click', function(){
$('.summernote').append('<input type="hidden" name="Contents", id="Contents" />');
$('#Contents').val($('.summernote').code());
$('폼').submit();
})
});
</script>
안될 수 도 있어요 초보라 답변이 허접해서 죄송해요 |
|
정수킴
/
2014/09/16 16:38:45 /
추천
0
한대승(불의회상) 역시 POST DATA 에 값이 안넘어가네요 ^^;
헤덥 답변 감사합니다 div가 아니여도 textarea로도 가능합니다. 일단 알려주신 내용은 https://gist.github.com/soomtong/6635053 여기에도 있어서 그대로 해봐도 역시 값이 안넘어가네요 ㅠㅠ |
|
letsgolee
/
2014/09/16 16:57:04 /
추천
0
summernote 소스코드를 잠깐 보니 원래 form submit을 할 경우 자동적으로 소스코드가 삽입되도록 되어 있습니다. 그런데 정수킴님은 submit_form()을 이용해 전송을 하고 있기 때문에 그 코드가 자동적으로 실행되지 않는거죠. 따라서 submit_form()안에 관련 코드를 넣어주어야 합니다. 다음의 코드를 넣어보세요. 테스트는 안해봤습니다.
$('.summernote').val($('.summernote').code()); |
|
한대승(불의회상)
/
2014/09/16 16:57:12 /
추천
0
정수킴// 메뉴얼을 보면 submit 만으로는 데이터를 전송하지 못하는것 같네요.
submit 하기전에 데이터를 받아서 hidden 태그에 넣어 주는 방법을 쓰던지 해야 할듯...
var sHTML = $('.summernote').code();
alert(sHTML);
|
|
헤덥
/
2014/09/16 17:48:03 /
추천
0
정수킴// 예제를 post 로 넘겨본 결과 잘되네요
윗분들 말씀처럼 아래 코드를 서브밋 전에 어딘가에서 실행만 시켜주면 될 것 같네요 예제에선 텍스트에이리어를 그냥 코드값을 받아 html 로 넘겨주네요~
$('textarea[name="Contents"]').html($('.summernote').code());
|
|
정수킴
/
2014/09/17 09:02:35 /
추천
0
letsgolee / 한대승(불의회상) / 헤덥
답변 감사합니다. 질문 올려놓고 어제 혼자 끙끙 해보겠다고 프로파일러 켜구 끙끙 거리다가 결국 혼자 해결했는데 알려주신데로 하는게 답이였더군요 ^^ 감사합니다 나중에 기회가 된다면 summernote 적용기 (?) 포스팅 해보도록 하겠습니다. ^^ |
http://cikorea.net/user_guide_2.1.0/general/profiling.html