Как изменить значение textarea через FORM API

Главные вкладки

Аватар пользователя HIgor1968 HIgor1968 18 марта 2009 в 11:55

Если

$my_fld =&$form[submitted][мое поле textfield];
$my_fld['#default_value'] = 'новое значение';

Все работает на ура. На экране значение меняется.

А если

$my_fld =&$form[submitted][мое поле textarea];
$my_fld['#default_value'] = 'новое значение';

То новое значение не присваивается.
Что я не так делаю, как изменить значение textarea
Не обходимо только вывод на экран подменить.

Комментарии

Аватар пользователя elia elia 18 марта 2009 в 12:18

Вообще-то у textarea нет атрибута value - http://w3schools.com/html/html_forms.asp
Поэтому не может быть и default_value (для того же textfield это обертка, которая подсовывает значение в атрибут value формы input при генерации формы.)
Менять надо $my_fld['#value'] = 'новое значение';

Аватар пользователя HIgor1968 HIgor1968 18 марта 2009 в 12:49

Понял. Только не понял как значение через FORM API сменить. При создании нового поля все в норме. Или только новое поле и создавать.

Аватар пользователя neochief neochief 18 марта 2009 в 12:42

Боже, ну не советуйте, если не знаете наверняка Smile #value — менять не нужно, это вообще чуть ли не служебное поле, вот доки.

#default_value должно работать, если нет, значит кто-то его "перетирает" после вас, или вы просто не сохраняете значение в общий массив.

Аватар пользователя HIgor1968 HIgor1968 18 марта 2009 в 13:23

#default_value в textarea устанавливается толко при создании нового элемента. Потом сменить через form API не получается. В доках видимо недоработка. Элемент формы точно беру верный т.к. другие элементы, например #description меняются без проблем.
В принципе из положения вышел созданием нового textarea в форме и удалением старого. Другого выхода не нашел (пока).