제목 | 혹시 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