[support] hook_form_alter() data changed in array but not on screen
Marc Poris
marc at funnymonkey.com
Wed Jun 17 17:35:29 UTC 2009
Some other module is probably having its hook_form_alter() come after
yours. Try setting your module's weight greater than all other modules
and/or rename your module so it comes later alphabetically.
Steve Edwards wrote:
> Thanks for the suggestion. Yes, it is &$form. As I stated below, I'm
> already modifying other forms in the same function, and they are
> working fine.
>
> Steve
>
> Jamie Holly wrote:
>> Are you sure you have &$form and not just $form in your function
>> declaration? I've had the same problem before and pulled my hair out
>> just to realize I forgot the &.
>>
>> Jamie Holly
>>
>>
>>
>>
>> Steve Edwards wrote:
>>> I'm trying to use hook_form_alter() to write data to a text field
>>> when the form is first displayed, but for some reason I can't get
>>> the values to display on the form itself. I know I have the right
>>> form_id, because dsm() displays all the data for that form. What's
>>> even weirder is that I can see the data being changed in the form
>>> itself, but it just won't change on the screen. I can also change
>>> the weight of the field ($form['field_class_name']['#weight']=99;)
>>> and it relocates the position of the field on the screen
>>> accordingly. But when, for instance, I change the #title and
>>> #description of the field, the changes are changed in the arrary
>>> itself (I can see this by putting a dsm() after changing the data),
>>> but the values on the screen don't change. I'm making similar
>>> changes to other forms within the same hook function (different case
>>> statements), and they all work fine. I've cleared all my caches
>>> (Drupal and browser), but to no avail. Can anyone tell me why my
>>> form data isn't changing?
>>>
>>> Thanks.
>>>
>>> Steve
>>>
More information about the support
mailing list