<div dir="ltr">Ok, did that , and the #validate function is firing. I might get this wrong, because my confusion level is high, but here is what I think I observe in xdebug.<div><br></div><div>When I was setting a form error during validation, when it eventual made its way to drupal_process_form it wasn't doing a rebuild because of that. So I tried not setting a form error, since I'm setting $form_state[rebuild]=true anyway. Now drupal_process_form does a rebuild, but what happens is that just prior to the rebuild, the #options are what I just set them to with</div><div> $form[my_field][LANGUAGE_NONE][0][#options] = my_options_array;</div><div>in validation, but right after the rebuild, the original value is back. Do I need to set #options in more than one section of $form or somewhere in $form_state?</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 11, 2015 at 12:01 PM, Jamie Holly <span dir="ltr"><<a href="mailto:hovercrafter@earthlink.net" target="_blank">hovercrafter@earthlink.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>There could be something else
overriding that in validation. Instead of using the default
hook_node_validate, trying adding $form['#validate'][] =
'my_custom_validation_function' in hook_form or hook_form_alter.
That way it's the last validation hook called. <br>
<pre cols="72">Jamie Holly
<a href="http://hollyit.net" target="_blank">http://hollyit.net</a></pre>
On 2/11/2015 11:45 AM, Jeff Greenberg wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">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.</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Feb 11, 2015 at 10:57 AM, Jamie
Holly <span dir="ltr"><<a href="mailto:hovercrafter@earthlink.net" target="_blank">hovercrafter@earthlink.net</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>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. <br>
<br>
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. <br>
<pre cols="72">Jamie Holly
<a href="http://hollyit.net" target="_blank">http://hollyit.net</a></pre>
On 2/11/2015 10:43 AM, Jeff Greenberg wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">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.</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Feb 11, 2015 at 9:31
AM, Jeff Greenberg <span dir="ltr"><<a href="mailto:listmail.ayendesigns@gmail.com" target="_blank">listmail.ayendesigns@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div>
<p style="margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both">I
have a node form that contains a checkboxes
field with options NULL at the time the form
is displayed.</p>
<p style="margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both">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.</p>
<p style="margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both">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.</p>
<p style="margin:0px 0px 1em;padding:0px;border:0px;vertical-align:baseline;clear:both">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.</p>
<span><font color="#888888">
<div><br>
<span><font color="#888888"> </font></span></div>
<span><font color="#888888">
</font></span></font></span></div>
<span><font color="#888888"> <span><font color="#888888">
<div><br>
</div>
-- <br>
<div>---
<div><a href="http://drupal.org/user/367108" target="_blank">drupal.org/user/367108</a></div>
<div><a href="http://linkedin.com/in/jeffrgreenberg" target="_blank">linkedin.com/in/jeffrgreenberg</a></div>
<div><a href="http://accidentalcoder.com" target="_blank">accidentalcoder.com</a>
/ <a href="http://ayendesigns.com" target="_blank">ayendesigns.com</a></div>
<div>@accidentalcoder</div>
</div>
</font></span></font></span></div>
<span><font color="#888888"> </font></span></blockquote>
<span><font color="#888888"> </font></span></div>
<span><font color="#888888"> <br>
<br clear="all">
<div><br>
</div>
-- <br>
<div>---
<div><a href="http://drupal.org/user/367108" target="_blank">drupal.org/user/367108</a></div>
<div><a href="http://linkedin.com/in/jeffrgreenberg" target="_blank">linkedin.com/in/jeffrgreenberg</a></div>
<div><a href="http://accidentalcoder.com" target="_blank">accidentalcoder.com</a> / <a href="http://ayendesigns.com" target="_blank">ayendesigns.com</a></div>
<div>@accidentalcoder</div>
</div>
</font></span></div>
<span><font color="#888888"> <br>
<fieldset></fieldset>
<br>
</font></span></blockquote>
<br><span class="HOEnZb"><font color="#888888">
</font></span></div><span class="HOEnZb"><font color="#888888">
<br>
--<br>
[ Drupal support list | <a href="http://lists.drupal.org/" target="_blank">http://lists.drupal.org/</a>
]<br>
</font></span></blockquote><span class="HOEnZb"><font color="#888888">
</font></span></div><span class="HOEnZb"><font color="#888888">
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div>---
<div><a href="http://drupal.org/user/367108" target="_blank">drupal.org/user/367108</a></div>
<div><a href="http://linkedin.com/in/jeffrgreenberg" target="_blank">linkedin.com/in/jeffrgreenberg</a></div>
<div><a href="http://accidentalcoder.com" target="_blank">accidentalcoder.com</a>
/ <a href="http://ayendesigns.com" target="_blank">ayendesigns.com</a></div>
<div>@accidentalcoder</div>
</div>
</font></span></div><span class="HOEnZb"><font color="#888888">
<br>
<fieldset></fieldset>
<br>
</font></span></blockquote>
<br>
</div>
<br>--<br>
[ Drupal support list | <a href="http://lists.drupal.org/" target="_blank">http://lists.drupal.org/</a> ]<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">---<div><a href="http://drupal.org/user/367108" target="_blank">drupal.org/user/367108</a></div><div><a href="http://linkedin.com/in/jeffrgreenberg" target="_blank">linkedin.com/in/jeffrgreenberg</a></div><div><a href="http://accidentalcoder.com" target="_blank">accidentalcoder.com</a> / <a href="http://ayendesigns.com" target="_blank">ayendesigns.com</a></div><div>@accidentalcoder</div></div>
</div>