Если
$my_fld =&$form[submitted][мое поле textfield];
$my_fld['#default_value'] = 'новое значение';
$my_fld['#default_value'] = 'новое значение';
Все работает на ура. На экране значение меняется.
А если
$my_fld =&$form[submitted][мое поле textarea];
$my_fld['#default_value'] = 'новое значение';
$my_fld['#default_value'] = 'новое значение';
То новое значение не присваивается.
Что я не так делаю, как изменить значение textarea
Не обходимо только вывод на экран подменить.
Комментарии
Вообще-то у textarea нет атрибута value - http://w3schools.com/html/html_forms.asp
Поэтому не может быть и default_value (для того же textfield это обертка, которая подсовывает значение в атрибут value формы input при генерации формы.)
Менять надо $my_fld['#value'] = 'новое значение';
Понял. Только не понял как значение через FORM API сменить. При создании нового поля все в норме. Или только новое поле и создавать.
Боже, ну не советуйте, если не знаете наверняка #value — менять не нужно, это вообще чуть ли не служебное поле, вот доки.
#default_value должно работать, если нет, значит кто-то его "перетирает" после вас, или вы просто не сохраняете значение в общий массив.
#default_value в textarea устанавливается толко при создании нового элемента. Потом сменить через form API не получается. В доках видимо недоработка. Элемент формы точно беру верный т.к. другие элементы, например #description меняются без проблем.
В принципе из положения вышел созданием нового textarea в форме и удалением старого. Другого выхода не нашел (пока).
Без контекста сложно. Можно увидеть "окружающий" код?