1 ajax_example_graceful_degradation.inc ajax_example_dynamic_sections_submit($form, &$form_state)

Submit function for ajax_example_dynamic_sections().

Related topics

File

modules/examples/ajax_example/ajax_example_graceful_degradation.inc, line 296
Demonstrations of AJAX with graceful degradation.

Code

function ajax_example_dynamic_sections_submit($form, &$form_state) {
  // This is only executed when a button is pressed, not when the AJAXified
  // select is changed.
  // Now handle the case of the next, previous, and submit buttons.
  // Only submit will result in actual submission, all others rebuild.
  switch ($form_state['triggering_element']['#value']) {
    case t('Submit your answer'):
      // Submit: We're done.
      $form_state['rebuild'] = FALSE;
      $answer = $form_state['values']['question'];

      // Special handling for the checkbox.
      if ($answer == 1 && $form['questions_fieldset']['question']['#type'] == 'checkbox') {
        $answer = $form['questions_fieldset']['question']['#title'];
      }
      if ($answer === t('George Washington')) {
        backdrop_set_message(t('You got the right answer: @answer', array('@answer' => $answer)));
      }
      else {
        backdrop_set_message(t('Sorry, your answer (@answer) is wrong', array('@answer' => $answer)));
      }
      $form_state['rebuild'] = FALSE;
      return;

      // Any other form element will cause rebuild of the form and present
      // it again.
    case t('Choose'):
      $form_state['values']['question_type_select'] = $form_state['input']['question_type_select'];
      // Fall through.
    default:
      $form_state['rebuild'] = TRUE;
  }
}