首页 > 解决方案 > 插入数据库时​​CKEDITOR值为NULL

问题描述

抱歉我的英语不好,我不想使用 CKEDITOR 和 ajax 提交将数据插入数据库,我有代码

$('#add').submit(function(e) {
	var fd = new FormData(this);
	e.preventDefault();
	// CKEDITOR.instances.isiForm.updateElement();
	for ( instance in CKEDITOR.instances ) {
		CKEDITOR.instances.isiForm.updateElement();
	}
	$.ajax({
		type: "POST",
		url:  "blog_add",
		data: fd,
		cache: false,
        contentType: false,
        processData: false,
		success: function(result){
			if(result=='1'){
				table.ajax.reload(null,false);
			  $('#add').modal('hide');
				// success result
			} else {
				// failed result
      }
		}
	});
});
<form class="modal fade" id="add" enctype="multipart/form-data">
	<div class="form-group">
		<label>Isi Post</label>
		<textarea id="isiForm" name="isiForm" cols="5" class="form-control rsf"></textarea>
	</div>
</form>

我试过使用 CKEDITOR.instances.isiForm.updateElement(); 但它不起作用,该值始终为 NULL,那么如何使用 ajax 插入数据库?我尝试了很多线程,但没有一个成功

标签: phpjqueryajaxcodeigniterckeditor

解决方案


在 ckeditor 更新 textarea 之前,您将获得 FormData。只需切换它,以便在获取 FormData 之前更新 CKEDITOR 元素。

EG(未经测试)

$('#add').submit(function(e) {
	e.preventDefault();
  //first update the form values
	for ( instance in CKEDITOR.instances ) {
		CKEDITOR.instances.isiForm.updateElement();
	}
  //then get the form data
	var fd = new FormData(this);
  //post via ajax
	$.ajax({
		type: "POST",
		url:  "blog_add",
		data: fd,
		cache: false,
        contentType: false,
        processData: false,
		success: function(result){
			if(result=='1'){
				table.ajax.reload(null,false);
			  $('#add').modal('hide');
				// success result
			} else {
				// failed result
      }
		}
	});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form class="modal fade" id="add" enctype="multipart/form-data">
	<div class="form-group">
		<label>Isi Post</label>
		<textarea id="isiForm" name="isiForm" cols="5" class="form-control rsf"></textarea>
	</div>
</form>


推荐阅读