2017-12-13 8 views
0

まずは、私はCKeditorで私の問題を助けることができる誰かがいるかどうかを知りません。CKeditデータがPHPバリデーションで認識されないCodeigniter

マイコントローラーコード:

 public function reply_topic() 
    { 
     $this->load->helper('form'); 
     $this->load->library('form_validation'); 

     $this->form_validation->set_rules('comment', 'Comment Field Required', 'required'); 
     //$this->form_validation->set_rules('g-recaptcha-response', 'recaptcha validation', 'required|callback_validate_captcha'); 
     //$this->form_validation->set_message('validate_captcha', 'Please check the the captcha form'); 

     if ($this->form_validation->run() == FALSE) 
     { 
      $this->load_reply_to_topic_view($this->input->post('topic_id')); 
     } 
     else 
     { 
      $topic_id = $this->input->post('topic_id'); 
      $this->topic_model->postReplyTopic(); 
      echo '<div class="alert alert-success">'.lang_key('reply_submited').'</div>'; 
      $this->load_reply_to_topic_view($topic_id=''); 
     } 
    } 

このコードは、その作業罰金を開始する問題はありません。しかし、データを提出しようとすると、常にエラーが発生します。 コメント欄は空欄ですが、既にコメント欄にデータを入力していますが、このエラーはCKeditorを使用している場合に発生します。しかし、私は通常のテキストエリアを使用している場合は、本当にうまく動作します。ここ

<!-- Javascript --> 
<script type="text/javascript"> 
CKEDITOR.replace('comment'); 
</script> 

そして

コメントセクションは、実際にテキストエリアのフィールドを使用しません

<script type="text/javascript"> 
var loadUrl = '<?php echo base_url("threads/load_reply_to_topic_view/".$item['id']);?>'; 
    jQuery.post(
     loadUrl, 
     {}, 
     function(responseText){ 
      jQuery('.reply-topic-form-holder').html(responseText); 
      init_reply_topic_js(); 
     } 
    ); 



function init_reply_topic_js() 
{ 
    jQuery('#replytopic-form').submit(function(e){ 
      var data = jQuery(this).serializeArray(); 
      jQuery('.topic-loading').show(); 
      e.preventDefault(); 
      var loadUrl = jQuery(this).attr('action'); 
      jQuery.post(
       loadUrl, 
       data, 
       function(responseText){ 
        jQuery('.reply-topic-form-holder').html(responseText); 
        jQuery('.alert-success').each(function(){ 
         jQuery('#replytopic-form textarea').each(function(){ 
          jQuery(this).val(''); 
         }); 
        }); 

        jQuery('.topic-loading').hide(); 
        init_reply_topic_js(); 
       } 
      ); 
     }); 
} 
</script> 
+0

がGoogleに尋ねてみて、私は尋ねたhttps://docs.ckeditor.com/ckeditor4/docs/?mobile=/guide/dev_savedata – TimBrownlaw

+0

それは本当に私の問題です。私はこの問題について私が狂ってしまうのを混乱させているので、私はGoogleでそれをどのように検索するのか分かりません..あなたの応答のために、ちなみに –

+0

私はあなたに見るべきリンク。あなたはそれを見ましたか? – TimBrownlaw

答えて

1

CKを登場コードで、それはいわばためだけの「プレースホルダ」です。そのため、CKのデータがテキストエリアに追加されるようにするか、AJAX経由で投稿するときにそのフィールドのデータを取得しないようにする必要があります。正常に転記する場合は、autoUpdateElementのため問題ありません。

より前var data = jQuery(this).serializeArray();からCKEDITOR.instances.comment.updateElement();を加えます。これにより、CKエディタの内部マークアップがテキストエリアに確実に追加されるので、配列をシリアル化する前にフィールドに値を設定します。

方法に関する文書here。 CKEditorバージョンからデータを取得する方法と、Webサイトからの回答を逆流することなく、ここにリンクがある - -

jQuery('#replytopic-form').submit(function (e) { 
    CKEDITOR.instances.comment.updateElement(); 
    var data = jQuery(this).serializeArray(); 
    jQuery('.topic-loading').show(); 
    e.preventDefault(); 
    var loadUrl = jQuery(this).attr('action'); 
    jQuery.post(
      loadUrl, 
      data, 
      function (responseText) { 
       jQuery('.reply-topic-form-holder').html(responseText); 
       jQuery('.alert-success').each(function() { 
        jQuery('#replytopic-form textarea').each(function() { 
         jQuery(this).val(''); 
        }); 
       }); 
       jQuery('.topic-loading').hide(); 
       init_reply_topic_js(); 
      } 
    ); 
}); 
+0

は恐ろしい..あなたにその作業は今非常に多くの男をありがとうございました!...ところで、あなたはCKについての私の他の懸念を確認することができますか..? https://stackoverflow.com/questions/47763304/ckeditor-not-image-video-link-embed-and-many-others-not-working-in-modal –

関連する問題