Здравствуйте, товарищи...
У меня проблема, при работе с ckeditor, не могли бы помочь.
Проблема в следующем...
Одним словом я создал класс, для динамического формирования элементов формы, например textarea...
Там есть такой кусок (может кто то видел его в книжках):
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
public function get_html_block() {
//Если определены размеры, учитываем их
if (!empty($this->cols)) {
$cols = "cols=".$this->cols;
} else $cols="";
if (!empty($this->rows)) {
$rows = "rows=".$this->rows;
} else $rows = "";
//Учитываем атрибуты текстовой области
if ($this->disabled) $disabled="disabled"; else $disabled = "";
if ($this->readonly) $readonly="readonly"; else $readonly = "";
if ($this->wrap) $wrap="wrap"; else $wrap = "";
//обязательное ли поле к заполнению
if ($this->is_required) { $this->caption .= " <span style='color: red'>*</span>"; $dataReq = "data-require='1'"; } else $dataReq = "";
$datatype = "data-type='".$this->datatype."'";
$tag = "<div class='category-desc-wrapper'>";
$tag .= "<span class='custom-text' style='margin-bottom: 10px; float: left'>".$this->caption."</span>";
$tag .= "<div class='background: #fff'>";
$tag .= "<script type='text/javascript'>
$(document).ready(function(){
var editor1 = null;
editor1 = CKEDITOR.replace(".$this->name.");
});
</script>";
$tag .= "<textarea id=\"".$this->name."\" name=\"".$this->name."\" $cols $rows $disabled $readonly $wrap $dataReq $datatype >".$this->value."</textarea>\n";
$tag .= "</div>";
$tag .= "</div>";
return $tag;
}
Как видно здесь я создаю этот тектареа...
Теперь все это я вытакиваю с помощью яваскрипт
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
function settingAddEditBlock(id_gr, id_bl, mode) {
admin.ajaxRequest({
uniqueurl:"WidgetAction/ExtractFormSettings",
idblock : id_bl
}, function(response){
if (response.data != '') {
$('.add-blocks-settings .widget-table-body').html(response.data); -- как раз здесь формируется форма
if ((mode !== 'edit') && (id_gr == 0)) {
admin.openModal($('.add-blocks-settings'));
} else {
//получаем значение параметров добавленного на макет виджета и вставка его на форму
getAndInsParamsSetting($('.add-blocks-settings'), id_gr); --- здесь я присваюваю элементам формы данные из БД
admin.openModal($('.add-blocks-settings'));
}
} else {
saveSettingWidget();
}
}
);
admin.initToolTip();
}
function getAndInsParamsSetting(obj, id) {
//получаем данные из бд
admin.ajaxRequest({
uniqueurl:"WidgetAction/getOneRecGridPage",
id_page_grid: id
},
function (response) {
var parsProperty = JSON.parse(response.data.widget.property);
for (var key in parsProperty) {
if ($('.add-blocks-settings input[name='+key+']')) {
switch ($('.add-blocks-settings input[name='+key+']').attr('type')) {
case 'text': {
$('.add-blocks-settings .widget-table-body input[name="'+key+'"]').val(parsProperty[key]);
break;
}
case 'checkbox':{
if (parsProperty[key]) {
$('.add-blocks-settings .widget-table-body input[name='+key+']').prop('checked', true);
}
break;
}
default: break;
}
}
if ($('.add-blocks-settings .widget-table-body textarea[name="'+key+'"]').length > 0) {
$('.add-blocks-settings .widget-table-body textarea[name="'+key+'"]').val(parsProperty[key]);
}
}
$('.add-blocks-settings .widget-table-body .save-button.save-makets').attr('id',response.data.widget.id_page_grid);
}
);
}
Теперь когда я нажимаю определенную кнопку, у меня открывается модальная форма, и данные из БД, должны записаться в ckeditor. При первом открытии модального окна, в ckeditor текст есть, при втором и последующих открытиях, в ckeditor текта нет...
Перегружаю страницу по F5, опять нажимаю кнопку, открвается модальное окно, появляется текст в ckeditor, а при последующих открытиях текста нет, не пойму где ошибка... Такое ощущение как будто, ckeditor создается заново...