如何在拉拉维尔中获取 Ckeditor 文本区域值



当我提交表单时,我正在使用 Ckeditor 在我的项目中发布博客,我在控制器中没有得到任何东西,任何人都可以建议我的解决方案。

我的观点看起来像

<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 中我不确定如何完成它。

您的视图包含 2 个用于post_content字段(文本区域(的名称属性。请检查。

你可以这样做 -

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

然后你必须初始化它

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

文档有明确的例子。

在你的刀片中,你应该像这样添加 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>

如果要通过 Ajax 发送此数据,则需要创建一个端点。不要忘记添加 CSRF 代币

正如@user3888958所提到的,

<文本区域>
名称="tc" id="post_content" 行="10" 列="60" class="span8" 占位符="图像标题转到此处" 名称="post_content">>

文本区域有两个名称属性。

您可以使用 name 属性访问文本区域内容,删除任何一个 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');

最新更新