$(document).on('change', "input[name='child']", function() {
CKEDITOR.config.contentsCss = 'lib/bootstrap/css/bootstrap.css', 'lib/css/myStyle.css';
CKEDITOR.config.extraPlugins = 'font';
var pjID = {};
var pjDesc = [];
$("input[name='child']:checked").each(function() {
pjDesc.push($(this).val());
});
if ($(this).prop("checked") == true) {
pjID.projectsk = $(this).val();
$.ajax({
url: 'sample.php',
type: 'POST',
data: pjID,
success: function(result) {
var response = JSON.parse(result);
var content = CKEDITOR.instances.projectEditor.getData();
CKEDITOR.instances.projectEditor.setData(content + response.data[0].project_desc);
},
error: function(error) {
console.log(error);
}
});
}
else if ($(this).prop("checked") == false) {
var content = "";
var contentVal = "";
$.each(pjDesc, function(key, val) {
pjID.projectsk = val;
$.ajax({
url: 'sample.php',
type: 'POST',
data: pjID,
success: function(result) {
var response = JSON.parse(result);
console.log(response);
content = response.data[0].project_desc;
contentVal = contentVal+"<br>"+content;
console.log(contentVal);
},
error: function(error) {
console.log(error);
}
});
console.log('contentVal',contentVal);
CKEDITOR.instances.projectEditor.setData(contentVal);
});
}
CKEDITOR.replace('projectEditor');
});
上述代码完全有效,除了这行CKEDITOR.instances.projectEditor.setData(contentVal);. 我在控制台中得到了确切的输出。但是我无法在ckeditor中设置值。我尝试过使用insertHtml,insertText和foocallback()。请帮助我
答案 0 :(得分:0)
您必须将以下代码放在ajax的成功部分中。因为你的行首先执行,数据在它之后变量。
console.log('contentVal',contentVal);
CKEDITOR.instances.projectEditor.setData(contentVal);
只是放在这些行下方的行上方
contentVal = contentVal+"<br>"+content;
console.log(contentVal);
由于ajax和java脚本的异步行为,您的变量在控制台上打印。您可以按照帖子了解:https://stackoverflow.com/a/23667087/2651863
我要修改你的代码:
$(document).on('change', "input[name='child']", function() {
CKEDITOR.config.contentsCss = 'lib/bootstrap/css/bootstrap.css', 'lib/css/myStyle.css';
CKEDITOR.config.extraPlugins = 'font';
// its better to initilize CKeditor immidiate after configuration
CKEDITOR.replace('projectEditor');
var pjID = {};
var pjDesc = [];
$("input[name='child']:checked").each(function() {
pjDesc.push($(this).val());
});
if ($(this).prop("checked") == true) {
pjID.projectsk = $(this).val();
$.ajax({
url: 'sample.php',
type: 'POST',
data: pjID,
success: function(result) {
var response = JSON.parse(result);
var content = CKEDITOR.instances.projectEditor.getData();
CKEDITOR.instances.projectEditor.setData(content + response.data[0].project_desc);
},
error: function(error) {
console.log(error);
}
});
}
else if ($(this).prop("checked") == false) {
var content = "";
var contentVal = "";
$.each(pjDesc, function(key, val) {
pjID.projectsk = val;
$.ajax({
url: 'sample.php',
type: 'POST',
data: pjID,
success: function(result) {
var response = JSON.parse(result);
console.log(response);
content = response.data[0].project_desc;
contentVal = contentVal+"<br>"+content;
console.log(contentVal);
// set data when actually it arrive
console.log('contentVal',contentVal);
CKEDITOR.instances.projectEditor.setData(contentVal);
},
error: function(error) {
console.log(error);
}
});
});
}
});