2017-08-08 81 views
0

我在我的项目中使用CKEDITOR的博客文章时,我提交表单什么我是得到控制任何一个可以建议我该解决方案。如何获得CKEDITOR textarea的价值laravel

我的观点是寻找像

<div class="container"> 
    <div class="row"> 
     <div class="col-md-10 col-md-offset-2"> 
      <div class="panel panel-default"> 
       <div class="panel-heading">Post</div> 
       <div class="panel-body"> 
        <form class="form-horizontal" role="form" method="POST" action="{{ route('store-post') }}"> 
         {{ csrf_field() }} 

          <div class="form-group"> 
           <label for="category_id" class="col-md-2 control-label">Select Categories</label> 
           <div class="col-md-8"> 
           <select class="form-control" id="category_id" name="category_id"> 


           @foreach($categories as $category) 
             <option value="{{$category->url_name}}"> 
             {{$category->category_name}}</option> 
           @endforeach 

           </select> 
           </div> 
          </div> 


         <div class="form-group"> 
          <label for="email" class="col-md-2 control-label">Post Title</label> 

          <div class="col-md-8"> 
           <input id="post_title" type="text" class="form-control" name="post_title" value="{{ old('post_title') }}"> 
          </div> 
         </div> 

          <div class="form-group"> 
          <label for="post_content" class="col-md-2 control-label">Post Description</label> 

          <div class="col-md-8"> 
          <textarea id="post_content" rows="10" cols="60" class="span8" placeholder="Image Title Goes Here" name="post_content"></textarea> 

          </div> 
         </div> 



         <div class="form-group"> 
          <label for="p_url" class="col-md-2 control-label">Post Url</label> 

          <div class="col-md-8"> 
           <input id="p_url" type="text" class="form-control" name="p_url" value="{{ old('p_url') }}"> 
          </div> 
         </div> 



         <div class="form-group"> 
          <label for="p_title" class="col-md-2 control-label">Meta Title</label> 

          <div class="col-md-8"> 
           <input id="p_title" type="text" class="form-control" name="p_title" value="{{ old('p_title') }}"> 
          </div> 
         </div> 

         <div class="form-group"> 
          <label for="p_keyword" class="col-md-2 control-label">Meta Keyword</label> 

          <div class="col-md-8"> 
           <input id="p_keyword" type="text" class="form-control" name="p_keyword" value="{{ old('p_keyword') }}"> 
          </div> 
         </div> 


         <div class="form-group"> 
          <label for="email" class="col-md-2 control-label">Meta Description</label> 

          <div class="col-md-8"> 

          <textarea class="form-control" id="p_mdesc" name="p_mdesc" rows="3"> 

          </textarea> 

          </div> 
         </div> 






         <div class="form-group"> 

          <div class="col-md-8 col-md-offset-2"> 
           <button type="submit" class="btn btn-primary"> 
            Submit 
           </button> 


          </div> 
         </div> 

          <!--Error start--> 
          @if ($errors->any()) 
           <div class="alert alert-danger"> 
            <ul> 
             @foreach ($errors->all() as $error) 
              <li>{{ $error }}</li> 
             @endforeach 
            </ul> 
           </div> 
          @endif 
          <!--error ends--> 



        </form> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

我的控制器代码

public function store(Request $request){ 
     /*$this->validate($request, [ 
         'category_id' => 'required', 
         'post_title' => 'required', 
         //'post_content' => 'required', 
         'p_url' => 'required', 
         'p_title' => 'required', 
         'p_keyword' => 'required', 
         'p_mdesc' => 'required', 
        ]);*/ 

     $post=new Post; 
     echo $post_content=$request->input('post_content'); 
    } 
在以前的项目即CI设计

我只是使用 $tc=$this->input->post('tc');在控制器获得CKEDITOR值但在laravel,我不知道如何完成它。

回答

0

你可以做到这样的 -

{!! Form::textarea('tc', $tc,array('required', 'class'=>'form-control', placeholder'=>'Your message')) !!} 

,然后你必须初始化它

$(document).ready(function() { 
    CKEDITOR.replace('tc'); 
    }); 
2

您的视图包含用于POST_CONTENT场(文本域)2名属性。请检查。

0

的文档具有明显的例子。

在你的剑你应该添加CKEditor的是这样的:

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8"> 
     <title>A Simple Page with CKEditor</title> 
     <!-- Make sure the path to CKEditor is correct. --> 
     <script src="../ckeditor.js"></script> 
    </head> 
    <body> 
     <form> 
      <textarea name="editor1" id="editor1" rows="10" cols="80"> 
       This is my textarea to be replaced with CKEditor. 
      </textarea> 
      <script> 
       // Replace the <textarea id="editor1"> with a CKEditor 
       // instance, using default configuration. 
       CKEDITOR.replace('editor1'); 
      </script> 
     </form> 
    </body> 
</html> 

所以javascript代码触发的编辑器检索数据部分

<script> 
    var data = CKEDITOR.instances.editor1.getData(); 

    // Your code to save "data", usually through Ajax. 
</script> 
取代一个textarea的现在

您需要创建一个端点,如果你想确实发送这个数据槽阿贾克斯。不要忘记添加令牌

+0

感谢您的宝贵意见托马斯摩尔但如果我要发送使用PHP的数据,而无需使用AJAX请求,那么是否有任何possibliity –

+0

是:把CKEDITOR.instances.editor1.getData的'()的结果;'一个隐藏的输入字段内。这样它会发送到帖子内部。我 –

0

正如@ user3888958提到CSRF,

 
<textarea name="tc" id="post_content" rows="10" cols="60" 
    class="span8" placeholder="Image Title Goes Here" name="post_content"> 

textarea的有两个名称属性。

你可以使用name属性访问textarea的内容,删除任何一个name属性,并传递作为一个参数请求

$request->input('tc'); // OR 
$request->input('post_content'); 

和访问的

<textarea class="form-control" id="p_mdesc" name="p_mdesc" rows="3"> 
</textarea> 

值你可以访问它使用的名称

$request->input('p_mdesc'); 
+0

感谢先生的工作 –