我创建了一个带有wysywig文本编辑器的textarea。用户将单击进入textarea并开始像任何文本编辑器一样输入。然后,他们将使用该文本保存表单,然后使用$data['description'] = json_encode($description_data);
将数据保存到数据库中,这会将编码的字符串保存到数据库中。
以下是我在db列中的内容:
""<h1>test<\/h1>\r\n\r\n<p>paragraph<\/p>\r\n\r\n<p><u><em><strong>some text<\/strong><\/em><\/u><\/p>\r\n""
这种格式的原因是因为它是某些json输出的一部分,作为api的一部分,应用程序需要以这种格式转换文本。
我的主要问题是,当管理员在textarea中编辑该数据时,文本会被添加回上面的数据,如下所示:
这个文本不需要包含内容,并且在textarea中是普通的普通html。这可能吗?
以下是控制器功能:
public function store(Offer $offer)
{
$offerId = $offer['id'];
$data = Input::except('image','featured');
//$featured_data = array( 'offer_date' => $data['offer_date'], 'starttime' => $data['offer_start_time'], 'endtime' => $data['offer_end_time'] );
$description_data = $data['description'];
$validation = Validator::make($data, Offer::$rules);
if ($validation->fails()) {
return redirect('offers')->with('message', $validation->errors());
} else {
$file = Input::file('image');
$filename = date('Y-m-d-H')."-".$file->getClientOriginalName();
$path = storage_path('app/uploads/' . $filename);
Image::make($file->getRealPath())
->resize(600, 600)
->save($path);
$data['image'] = 'storage/app/uploads/'.$filename;
$data['description'] = json_encode($description_data);
Offer::create( $data );
return redirect('offers')->with('message', 'Offer added!');
}
}
我的形式是:
<div style="clear: both;" class="form-group">
{!! Form::label('description', 'Offer Description:') !!}
{!! Form::textarea('description', null, array('id'=>'editor1','class' => 'ckeditor form-control')) !!}
</div>
希望这可以实现。
答案 0 :(得分:0)
输出时只使用json_decode。它与json_encode相反。
答案 1 :(得分:0)
这是一个json编码的字符串,虽然它不是唯一有效的。
试试这个:
$var_str = '<h1>test<\/h1>\r\n\r\n<p>paragraph<\/p>\r\n\r\n<p><u><em><strong>some text<\/strong><\/em><\/u><\/p>\r\n';
$str_in = '{"s": "'. $var_str . '"}';
$sArr = json_decode($str_in, true);
$cleanString = $sArr['s'];
或javascript中的等价物。
PHP在这里小提琴:http://sandbox.onlinephpfunctions.com/code/625c6ffd9d31215f8f73f6e02b5328e0fdf807e7