插入数据库时​​CKEDITOR值为NULL

时间:2019-03-16 16:35:58

标签: php jquery ajax codeigniter ckeditor

对不起,我英语不好, 我不想用CKEDITOR和Ajax Submit将数据插入数据库,我有代码

$('#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插入数据库?而且我尝试了很多线程,但是没有人成功

1 个答案:

答案 0 :(得分:0)

在ckeditor更新文本区域之前,您将获得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>

相关问题