function ajax_example_form_node_form_alter

Implements hook_form_FORM_ID_alter().

Adds two fields to the node form, second only appears after first is enabled.

File

ajax_example/ajax_example_node_form_alter.inc, line 16

Code

function ajax_example_form_node_form_alter(&$form, &$form_state, $form_id) {
    $node = $form['#node'];
    $form['ajax_example_1'] = array(
        '#type' => 'checkbox',
        '#title' => t('AJAX Example 1'),
        '#description' => t('Enable to show second field.'),
        '#default_value' => $node->ajax_example['example_1'],
        '#ajax' => array(
            'callback' => 'ajax_example_form_node_callback',
            'wrapper' => 'ajax-example-form-node',
            'effect' => 'fade',
        ),
    );
    $form['container'] = array(
        '#prefix' => '<div id="ajax-example-form-node">',
        '#suffix' => '</div>',
    );
    // If the state values exist and 'ajax_example_1' state value is 1 or
    // if the state values don't exist and 'example1' variable is 1 then
    // display the ajax_example_2 field.
    if (!empty($form_state['values']['ajax_example_1']) && $form_state['values']['ajax_example_1'] == 1 || empty($form_state['values']) && $node->ajax_example['example_1']) {
        $form['container']['ajax_example_2'] = array(
            '#type' => 'textfield',
            '#title' => t('AJAX Example 2'),
            '#description' => t('AJAX Example 2'),
            '#default_value' => empty($form_state['values']['ajax_example_2']) ? $node->ajax_example['example_2'] : $form_state['values']['ajax_example_2'],
        );
    }
}