I have created a form. I want to submit the form values, validate them, then confirm that the user wishes to proceed. I place a drupal_execute('confirmation_form', $form_values) in my submit hook, and in the 'confirmation_form' I execute "confirm_form". But, it doesn't work. I don't get a confirmation form: the code execution cycles through to conformation_form_submit.
form()
Input values
form_validate()
validate values
form_submit()
Now, I want to confirm that the user wants to continue. If I call a
form from within this submit hook that executes a confirm_form, the
confirm_form() function doesn't work
form_confirm()
Execute confirm_form() doesn't work.
Code example:
<?php
function og_user_roles_register_submit($form, &$form_state) {
global $user;
if ($user->uid) {
$regcode = $form_state['values']['og_user_roles_regcode'];
$gid = og_user_roles_gid_from_regcode($regcode);
if ($gid > 0) {
$node = node_load($gid);
drupal_execute('og_user_roles_register_confirm', $form_state, $node, $regcode);
}
} else {
drupal_access_denied();
}
}
/**
* Form builder; Builds the confirmation form for adding user to group using regcode.
*
* @ingroup forms
* @see og_user_roles_register_confirm_submit()
*/
function og_user_roles_register_confirm(&$form_state, $node, $regcode) {
$form = array();
$form['#node'] = $node;
$form['#regcode'] = $regcode;
return confirm_form($form, t('Are you sure you want to join this group %title?', array('%title' => $node->title)), 'node/'. $node->nid, t('This action can only be undone by unsubscribing from the group once joined.'), t('Delete'), t('Cancel'), 'og_user_roles_register_confirm');
}
// Confirmation form does NOT display. Code continues to successfully execute
// og_user_roles_register_confirm_submit()
//
// It's like if a form is called from a successful submit, then it's subsequent submit hook is
// automatically successful as well.
?>
In all the working examples of confirm_form() I've seen in Drupal
6.x, I do not see an example where it is called from a form submit
hook. Usually, it is called in some delete function where the key value is passed along in the url.
I want to enter values, validate those values, then confirm that the user wishes to proceed. How do I do that using confirm_form() (if that's even possible)?