我使用tinymce并使用“ laravel-tinymce-simple-imageupload”软件包上传图像。因此,我有一个页面,用户可以在其中选择注册类型,并在tinymce文本区域中输入一些内容,以将该内容与选定的注册类型相关联。
但是有一个问题。例如,用户可以选择一种注册类型,然后在文本区域中输入例如“证书1”,然后单击“存储”按钮。在数据库中,tinymce中引入的内容存储如下:
<p>certificate 1</p>
这是正确的。
但是问题是,例如,如果文本区域中的用户而不是只写“ certificate 1”,然后写“ certificate 1”,然后输入一个内容,则在下一行中也写例如“ test”,然后单击表单“存储”按钮将刷新页面,并且tinymce按钮将从textarea中消失,并将textarea中引入的内容插入db中,例如:
<p>certificate 1</p>
<p>test</p>
并且在控制台上出现错误:“ 中的“ Uncaught SyntaxError:无效或意外的令牌”
var certificate = {};
certificate[1] =
'<p>cert1<img src="../../../img/image_1532441196_7.jpeg"
alt="" width="1200" height="900" /></p>';
certificate[2] = '<p>cert2</p>
<p> </p>
<p>cert 2</p>
<p> </p>
<p>aee</p>';
但是,如果我在数据库中将其更改为“ <p>certificate 1</p><p>test</p>
”,即内容位于同一行,则刷新页面时再次出现tinymce按钮。
您知道可能是什么问题吗?
certificateController中的代码,用于将证书内容(在tinymce文本区域中引入的内容)插入数据库:
public function update(Request $request){
$registrationType = RegistrationType::where('id', $request->registrationType)->first();
$certificate = $registrationType->certificate;
// if no certificate exists for this type, create it
if(!$certificate ) {
$certificate = new Certificate();
}
// the certificate_content is the textarea with the tinymce plugin
$certificate->content = $request->certificate_content;
$certificate->save();
$registrationType->certificate_id = $certificate->id;
$registrationType->save();
$certificateContent = RegistrationType::with('certificate')->where('id', $request->registrationType)->first();
Session::flash('success','Certificate configured with success for the selected registration type.');
return redirect()->back();
}
jQuery:
<script type="text/javascript">
var certificate = {};
@foreach($conference->registrationTypes as $registrationType)
@if(!$registrationType->certificate)
certificate[{{ $registrationType->id }}] = '';
@else
certificate[{{ $registrationType->id }}] = '{!! $registrationType->certificate->content !!}';
@endif
@endforeach
$(function () {
$('.radio').change(function () {
var registrationTypeId = $('input[name=registrationType]:checked').val();
$(tinymce.get('certificate_content').getBody()).html(certificate[registrationTypeId]);
});
tinymce.init({
selector: 'textarea',
plugins: 'image code link lists textcolor wordcount ' +
' hr pagebreak colorpicker textpattern anchor table media',
relative_urls: true,
file_browser_callback: function (field_name, url, type, win) {
// trigger file upload form
if (type == 'image') $('#formUpload input').click();
}
});
});
</script>
答案 0 :(得分:0)
从去年开始,我就使用tinymce插件为我的一个项目生成了Word文档。那个时候我也面临着同样的问题。实际上,在tinymce中,存在一些错误意味着您必须选择两次映像才能更新并在系统中上传。然后它出现在网页上。第一次尝试不接受。 您应该先做一件事,然后上传图像,然后将其接受到系统中,然后再编写内容。