Tried this. So my function signature is:
function si_core_node_validate($node, &$form, &$form_state) {

and the last thing I do is:

            $form['refs'][LANGUAGE_NONE][0]['#options'] = $options;
            $form_state['rebuild'] = TRUE;
            form_set_error('refs', 'Select the potential entity links to be processed.');

yet the form displays the original field option.

On Wed, Feb 11, 2015 at 11:58 AM, Metzler, David <metzlerd@evergreen.edu> wrote:

Actually you should be able to alter the form in the validation function yes?  Just change the function signature to pass $form by reference and make the changes to the form that you need rather than going through the later hook?   


Dave

 

From: support-bounces@drupal.org [mailto:support-bounces@drupal.org] On Behalf Of Jeff Greenberg
Sent: Wednesday, February 11, 2015 8:45 AM
To: support@drupal.org
Subject: Re: [support] Changing checkboxes options during hook_node_validate

 

Ok, I've tried that. The last thing I do in hook_node_validate is $form_state['rebuild'] = true; What I notice is that hook_form_node_form_alter does not fire between then and the form being redisplayed, so my pulling the options from $form_state['storage'] never happens.

 

On Wed, Feb 11, 2015 at 10:57 AM, Jamie Holly <hovercrafter@earthlink.net> wrote:

The checkboxes have to be added in the form creation stage, so in either hook_form or hook_form_alter. Then in the hook_validate, set a variable on $form_state['storage'] and set $form_state['rebuild'] = TRUE; and check in your hook_form or hook_form_alter for your $form_state['storage'] setting, and if set then add your checkboxes.

I suggest looking at the form_example_wizard in the examples module, as that's basically what you are after, even though it's not a typical multi-step wizard you are after, the logic is still the same.

Jamie Holly
http://hollyit.net

On 2/11/2015 10:43 AM, Jeff Greenberg wrote:

One thing that is either part of the issue, or a separate issue that impacts this, is that the checkboxes field is added via hook_form_alter. I notice that although the field appears in $form_state[values] it does not appear in $form_state[field], so I'm wondering where $form_state gets the information for the field when rebuilding the form.

 

On Wed, Feb 11, 2015 at 9:31 AM, Jeff Greenberg <listmail.ayendesigns@gmail.com> wrote:

I have a node form that contains a checkboxes field with options NULL at the time the form is displayed.

During node_validate, if certain criteria is met, an array of options (checkboxes) is created, and the form needs to be redisplayed with the checkboxes as part of it.

I've tried setting #options = the new array in the $form, in $form_state[original_form], etc all to no avail. The field doesn't change.

I also set one checkbox in the field at the start, so that I could find it in the $form and $form_state structures, changed where I found it to the new options array, and again, no change. I am setting $form_state[rebuild] to true, and even tried explicitly calling for the form to be rebuilt.

 

 

--



 

--

 

 


--
[ Drupal support list | http://lists.drupal.org/ ]



 

--


--
[ Drupal support list | http://lists.drupal.org/ ]



--
---
drupal.org/user/367108
linkedin.com/in/jeffrgreenberg
accidentalcoder.com / ayendesigns.com
@accidentalcoder