function ajax_example_autotextfields

Show/hide textfields based on AJAX-enabled checkbox clicks.

Related topics

1 string reference to 'ajax_example_autotextfields'
ajax_example_menu in ajax_example/ajax_example.module
Implements hook_menu().

File

ajax_example/ajax_example.module, line 439

Code

function ajax_example_autotextfields($form, &$form_state) {
    $form['ask_first_name'] = array(
        '#type' => 'checkbox',
        '#title' => t('Ask me my first name'),
        '#ajax' => array(
            'callback' => 'ajax_example_autotextfields_callback',
            'wrapper' => 'textfields',
            'effect' => 'fade',
        ),
    );
    $form['ask_last_name'] = array(
        '#type' => 'checkbox',
        '#title' => t('Ask me my last name'),
        '#ajax' => array(
            'callback' => 'ajax_example_autotextfields_callback',
            'wrapper' => 'textfields',
            'effect' => 'fade',
        ),
    );
    $form['textfields'] = array(
        '#title' => t("Generated text fields for first and last name"),
        '#prefix' => '<div id="textfields">',
        '#suffix' => '</div>',
        '#type' => 'fieldset',
        '#description' => t('This is where we put automatically generated textfields'),
    );
    // Since checkboxes return TRUE or FALSE, we have to check that
    // $form_state has been filled as well as what it contains.
    if (!empty($form_state['values']['ask_first_name']) && $form_state['values']['ask_first_name']) {
        $form['textfields']['first_name'] = array(
            '#type' => 'textfield',
            '#title' => t('First Name'),
        );
    }
    if (!empty($form_state['values']['ask_last_name']) && $form_state['values']['ask_last_name']) {
        $form['textfields']['last_name'] = array(
            '#type' => 'textfield',
            '#title' => t('Last Name'),
        );
    }
    $form['submit'] = array(
        '#type' => 'submit',
        '#value' => t('Click Me'),
    );
    return $form;
}