'AJAX forms simple form test', 'page callback' => 'drupal_get_form', 'page arguments' => array('ajax_forms_test_simple_form'), 'access callback' => TRUE, ); $items['ajax_forms_test_ajax_commands_form'] = array( 'title' => 'AJAX forms AJAX commands test', 'page callback' => 'drupal_get_form', 'page arguments' => array('ajax_forms_test_ajax_commands_form'), 'access callback' => TRUE, ); return $items; } /** * A basic form used to test form_state['values'] during callback. */ function ajax_forms_test_simple_form($form, &$form_state) { $form = array(); $form['select'] = array( '#type' => 'select', '#options' => array( 'red' => 'red', 'green' => 'green', 'blue' => 'blue'), '#ajax' => array( 'callback' => 'ajax_forms_test_simple_form_select_callback', ), '#suffix' => '
No color yet selected
', ); $form['checkbox'] = array( '#type' => 'checkbox', '#title' => t('Test checkbox'), '#ajax' => array( 'callback' => 'ajax_forms_test_simple_form_checkbox_callback', ), '#suffix' => '
No action yet
', ); $form['submit'] = array( '#type' => 'submit', '#value' => t('submit'), ); return $form; } /** * AJAX callback triggered by select. */ function ajax_forms_test_simple_form_select_callback($form, $form_state) { $commands = array(); $commands[] = ajax_command_html('#ajax_selected_color', $form_state['values']['select']); $commands[] = ajax_command_data('#ajax_selected_color', 'form_state_value_select', $form_state['values']['select']); return array('#type' => 'ajax_commands', '#ajax_commands' => $commands); } /** * AJAX callback triggered by checkbox. */ function ajax_forms_test_simple_form_checkbox_callback($form, $form_state) { $commands = array(); $commands[] = ajax_command_html('#ajax_checkbox_value', (int)$form_state['values']['checkbox']); $commands[] = ajax_command_data('#ajax_checkbox_value', 'form_state_value_select', (int)$form_state['values']['checkbox']); return array('#type' => 'ajax_commands', '#ajax_commands' => $commands); } /** * Form to display the AJAX Commands. * @param $form * @param $form_state * @return unknown_type */ function ajax_forms_test_ajax_commands_form($form, &$form_state) { $form = array(); // Shows the 'after' command with a callback generating commands. $form['after_command_example'] = array( '#value' => t("AJAX 'After': Click to put something after the div"), '#type' => 'submit', '#ajax' => array( 'callback' => 'ajax_forms_test_advanced_commands_after_callback', ), '#suffix' => '
Something can be inserted after this
', ); // Shows the 'alert' command. $form['alert_command_example'] = array( '#value' => t("AJAX 'Alert': Click to alert"), '#type' => 'submit', '#ajax' => array( 'callback' => 'ajax_forms_test_advanced_commands_alert_callback', ), ); // Shows the 'append' command. $form['append_command_example'] = array( '#value' => t("AJAX 'Append': Click to append something"), '#type' => 'submit', '#ajax' => array( 'callback' => 'ajax_forms_test_advanced_commands_append_callback', ), '#suffix' => '
Append inside this div
', ); // Shows the 'before' command. $form['before_command_example'] = array( '#value' => t("AJAX 'before': Click to put something before the div"), '#type' => 'submit', '#ajax' => array( 'callback' => 'ajax_forms_test_advanced_commands_before_callback', ), '#suffix' => '
Insert something before this.
', ); // Shows the 'changed' command without asterisk. $form['changed_command_example'] = array( '#value' => t("AJAX changed: Click to mark div changed."), '#type' => 'submit', '#ajax' => array( 'callback' => 'ajax_forms_test_advanced_commands_changed_callback', ), '#suffix' => '
This div can be marked as changed or not.
', ); // Shows the 'changed' command adding the asterisk. $form['changed_command_asterisk_example'] = array( '#value' => t("AJAX changed: Click to mark div changed with asterisk."), '#type' => 'submit', '#ajax' => array( 'callback' => 'ajax_forms_test_advanced_commands_changed_asterisk_callback', ), ); // Shows the AJAX 'css' command. // @todo Note that this won't work until http://drupal.org/node/623320 lands. $form['css_command_example'] = array( '#title' => t("AJAX CSS: Choose the color you'd like the '#box' div to be."), '#type' => 'select', '#options' => array('green' => 'green', 'blue' => 'blue'), '#ajax' => array( 'callback' => 'ajax_forms_test_advanced_commands_css_callback', ), '#suffix' => '
box
', ); // Shows the AJAX 'data' command. But there is no use of this information, // as this would require a javascript client to use the data. $form['data_command_example'] = array( '#value' => t("AJAX data command: Issue command."), '#type' => 'submit', '#ajax' => array( 'callback' => 'ajax_forms_test_advanced_commands_data_callback', ), '#suffix' => '
Data attached to this div.
', ); // Shows the AJAX 'html' command. $form['html_command_example'] = array( '#value' => t("AJAX html: Replace the HTML in a selector."), '#type' => 'submit', '#ajax' => array( 'callback' => 'ajax_forms_test_advanced_commands_html_callback', ), '#suffix' => '
Original contents
', ); // Shows the AJAX 'prepend' command. $form['prepend_command_example'] = array( '#value' => t("AJAX 'prepend': Click to prepend something"), '#type' => 'submit', '#ajax' => array( 'callback' => 'ajax_forms_test_advanced_commands_prepend_callback', ), '#suffix' => '
Something will be prepended to this div.
', ); // Shows the AJAX 'remove' command. $form['remove_command_example'] = array( '#value' => t("AJAX 'remove': Click to remove text"), '#type' => 'submit', '#ajax' => array( 'callback' => 'ajax_forms_test_advanced_commands_remove_callback', ), '#suffix' => '
text to be removed
', ); // Show off the AJAX 'restripe' command. $form['restripe_command_example'] = array( '#type' => 'submit', '#value' => t("AJAX 'restripe' command"), '#ajax' => array( 'callback' => 'ajax_forms_test_advanced_commands_restripe_callback', ), '#suffix' => '
first row
second row
', ); $form['submit'] = array( '#type' => 'submit', '#value' => t('Submit'), ); return $form; } /** * AJAX callback for 'after'. */ function ajax_forms_test_advanced_commands_after_callback($form, $form_state) { $selector = '#after_div'; $commands = array(); $commands[] = ajax_command_after($selector, "This will be placed after"); return array('#type' => 'ajax_commands', '#ajax_commands' => $commands); } /** * AJAX callback for 'alert'. */ function ajax_forms_test_advanced_commands_alert_callback($form, $form_state) { $commands = array(); $commands[] = ajax_command_alert("Alert"); return array('#type' => 'ajax_commands', '#ajax_commands' => $commands); } /** * AJAX callback for 'append'. */ function ajax_forms_test_advanced_commands_append_callback($form, $form_state) { $selector = '#append_div'; $commands = array(); $commands[] = ajax_command_append($selector, "Appended text"); return array('#type' => 'ajax_commands', '#ajax_commands' => $commands); } /** * AJAX callback for 'before'. */ function ajax_forms_test_advanced_commands_before_callback($form, $form_state) { $selector = '#before_div'; $commands = array(); $commands[] = ajax_command_before($selector, "Before text"); return array('#type' => 'ajax_commands', '#ajax_commands' => $commands); } /** * AJAX callback for 'changed'. */ function ajax_forms_test_advanced_commands_changed_callback($form, $form_state) { $commands[] = ajax_command_changed('#changed_div'); return array('#type' => 'ajax_commands', '#ajax_commands' => $commands); } /** * AJAX callback for 'changed' with asterisk marking inner div. */ function ajax_forms_test_advanced_commands_changed_asterisk_callback($form, $form_state) { $commands = array(); $commands[] = ajax_command_changed('#changed_div', '#changed_div_mark_this'); return array('#type' => 'ajax_commands', '#ajax_commands' => $commands); } /** * AJAX callback for 'css'. */ function ajax_forms_test_advanced_commands_css_callback($form, $form_state) { $selector = '#css_div'; $color = $form_state['values']['css_command_example']; $commands = array(); $commands[] = ajax_command_css($selector, array('background-color' => $color)); return array('#type' => 'ajax_commands', '#ajax_commands' => $commands); } /** * AJAX callback for 'data'. */ function ajax_forms_test_advanced_commands_data_callback($form, $form_state) { $selector = '#data_div'; $commands = array(); $commands[] = ajax_command_data($selector, 'testkey', 'testvalue'); return array('#type' => 'ajax_commands', '#ajax_commands' => $commands); } /** * AJAX callback for 'html'. */ function ajax_forms_test_advanced_commands_html_callback($form, $form_state) { $commands = array(); $commands[] = ajax_command_html('#html_div', 'replacement text'); return array('#type' => 'ajax_commands', '#ajax_commands' => $commands); } /** * AJAX callback for 'prepend'. */ function ajax_forms_test_advanced_commands_prepend_callback($form, $form_state) { $commands = array(); $commands[] = ajax_command_prepend('#prepend_div', "prepended text"); return array('#type' => 'ajax_commands', '#ajax_commands' => $commands); } /** * AJAX callback for 'remove'. */ function ajax_forms_test_advanced_commands_remove_callback($form, $form_state) { $commands = array(); $commands[] = ajax_command_remove('#remove_text'); return array('#type' => 'ajax_commands', '#ajax_commands' => $commands); } /** * AJAX callback for 'restripe'. */ function ajax_forms_test_advanced_commands_restripe_callback($form, $form_state) { $commands = array(); $commands[] = ajax_command_restripe('#restripe_table'); return array('#type' => 'ajax_commands', '#ajax_commands' => $commands); }