Несколько Textare C Ckeditor

Здравствуйте, такая проблема: на одной форме присутствует 3 textarea(рус,англ,укр.) описания. Виджет выводится нормально, но в Базу данных сохраняет только первое поле, кто-то сталкивался с подобным? Как исправить данную проблему? Спасибо за внимание.

Проверить имена полей, rules в модели, …

В любом случае начать с того, что глянуть через файербаг или аналоги результирующий html и понять, в чем отличие (или совпадение).

без этого плагина сохранение идет нормально:( по хтмл: не отображает введенный текст во втором и третьем поле,но я так понимаю и не должно.

Вряд ли плагин цепляется на onsubmit и что-нибудь откусывает.

Скорее всего, он подменяет названия полей или еще какую-нибудь чертовщину делает с полями, после чего и происходят странные вещи.

К сожалению, это можно только через дебаг-консоль типа "inspect element" у гуглохрома увидеть.

Но я бы еще глянул, какой $_POST доходит до скрипта, есть ли там нужные данные вообще, и, если есть - с какими ключами массива.

смотрю через хром,в формах все вроде бы нормально,пост массив сейчас попытаюсь проверить.

Вот что выходит с формы:


Array ( [Catalog] => Array ( [article] => 444444 [manufacturer] => qweqwqqq [manufacturer_en] => wwwwww [manufacturer_ua] => eeeeee [title] => rrrrrr [title_en] => ttttt [title_ua] => asdasd [price] => 1 [price_retail] => 2 [mark] => asd [mark_en] => zxc [mark_ua] => qweeqw [type] => 4 [description] =>

asdasas


[description_en] =>

asdasdasd


[description_ua] =>

asdasdasd


[image] => [existence] => 1 [view_exist] => 1 [note] => [supplier] => ) [yt0] => Сохранить )

то есть до скрипта все норм доходит.

значит, где-то в модели отшибается.

смотрите правила модели, место сохранения и beforeSave/beforeValidate.

Коды в студию, короче.

Хотя, если при отсутствии ckeditor сохраняет…

нууу, фиг знает. магия.

Гляньте еще, как выглядит post при отсутствии ckeditor.

Я надеюсь, у ckeditor нет своей серверной части какой-нибудь?

Заменил все виджеты ckeditor на textarea


Array ( [Catalog] => Array ( [article] => 444444 [manufacturer] => qweqwqqq [manufacturer_en] => wwwwww [manufacturer_ua] => eeeeee [title] => rrrrrr [title_en] => ttttt [title_ua] => asdasd [price] => 1 [price_retail] => 2 [mark] => asd [mark_en] => zxc [mark_ua] => qweeqw [type] => 4 [description] =>

asdasas


[description_en] => qwewqewqewq [description_ua] => asdasd [image] => [existence] => 1 [view_exist] => 1 [note] => [supplier] => ) [yt0] => Сохранить )

в смысле серверной части?

beforeValidate() не трогал,стоит дефолтный, а в beforeSave() только обработка файлов и полей наличия и показа.

Ну, у Вас на сервер приходят два идентичных массива, но в одном случае он сохраняется, в другом - нет.

Соответственно, ищите, в какой момент гадость происходит.

Happy debugging )

бррр,стоп,уже не сохраняет и без скедитора…

Вот это больше похоже на правду.

Кеширование схемы, кстати, отключено? если добавить в таблицу колонки при включенном кешировании - как раз такое и наблюдается.

Вставил в экшен апдейта следующее:




$model->description_en=$_POST['Catalog']['description_en'];



Заработало…

Сейчас подключу виджет

Таки да,оно работает))магия какая-то…Странно,что баг проявился только тогда,когда подключил этот виджет.

Если так работает, а без него - нет, то смотрите правила валидации.

Собственно, я это в районе первого поста написал.

Кстати, если атрибут не проходит massAssignment - Yii жалуется об этом в лог. Так что логи тоже непременно гляньте.

Я новичок еще,пока даже не знаю где логи хранятся)Валидацию вы имеете ввиду функцию модели rules()? правила?. Большое вам спасибо, в любом случае :)

нашел что-то…




array('description', 'safe'),



про другие поля не сказано ничего.

Добавил в этот массив другие поля,выдает ошибку.В БД,кстати, тоже было несоответствие, не сохраняющиеся поля были not null…как он их тогда вообще сохранял?

Да. Фишка в том, что все поля, которые не прописаны в validation rules, не присваиваются через т. н. mass-assignment.

Т. е. вот так в любом случае присвоится: $model->description_en=$_POST[‘Catalog’][‘description_en’];

А вот так - только те, которые прописаны в правилах: $model->attributes = $_POST[‘Catalog’].

То есть, достаточно добавить эти два описания в safe - и всё заработает.

А лучше какие-нибудь реальные правила прописать, например, filter (trim и strip_tags).

Ну и остальные поля тоже проверьте на предмет наличия правил для них.

Засим откланиваюсь и отправляю Вас RTFM. Там есть нюансы.

отредактировал пост свой,пишу еще раз: при редактировании данного массива выдает ошибку.

include(description_en.php): failed to open stream: No such file or directory

Вот прямо так и вижу, как Вы в очередной раз невнимательно отнеслись к мануалу и прописали поле не внутрь строки (‘description, description_en’), а проставили лишние кавычки: ‘description’, ‘description_en’, таким образом превратив его в валидатор.

Повнимательнее, пожалуйста. Мануалы писаны не просто так.