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;
}
}