I am trying to set the value for an existing Node Reference drop-down field in a content type via hook_form_alter as part of an AJAX call. The form needs to set values based on a selection, which is does correctly for dozens of fields, but I can't get or find the array structure to change/set the value for a Node Reference field. I've looked around and tried every permutation I can find, including dozens of guesses at what the array structure should look like without any success. Any help would be appreciated.

  • Could you provide some code? Jul 6, 2017 at 14:54
  • @Neograph734 of what? every permutation I've tried, I didn't track it. I need the array structure to assign a node value to a node reference field
    – Geoff
    Jul 6, 2017 at 15:12
  • Looking at the code I guess that should be an array of nids, like this: array(array('nid' => 1)) (single value field) or array(array('nid' => 1), array('nid' => 2)) (multi value). Jul 6, 2017 at 15:19
  • Node Reference as in provided by the obsolete References module? Or an Entity Reference?
    – Clive
    Jul 6, 2017 at 15:29
  • it should be an array of nodes, but the exact structure eludes me: for example where a text field would be something like $form['field_name'][LANGUAGE_NONE][0]['value']['#value'] = 'abc', I don't know the corresponding structure and relevant names for a reference field
    – Geoff
    Jul 6, 2017 at 15:30

1 Answer 1


With Clive's help, I was able to figure out the array structure I needed. To set the node ID for a Node Reference field (References Module) in hook_form_alter, this structure worked for me:

$form['field_name'][LANGUAGE_NONE]['#value'][0] = {node id}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.