[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