Created
December 24, 2011 15:02
-
-
Save pascalduez/1517513 to your computer and use it in GitHub Desktop.
Drupal 7 — Basic Ajax form submit (Ajax framework)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* @file | |
* Demo module, Basic Ajax form submit (Ajax framework). | |
*/ | |
/** | |
* Implements hook_menu(). | |
*/ | |
function demo_menu() { | |
return array( | |
'demo/newsletter' => array( | |
'page callback' => 'drupal_get_form', | |
'page arguments' => array('demo_demo_form'), | |
'access callback' => TRUE, | |
'type' => MENU_CALLBACK, | |
), | |
); | |
} | |
/** | |
* A simple newsletter subscribe form. | |
*/ | |
function demo_demo_form($form, &$form_state) { | |
return array( | |
'email' => array( | |
'#type' => 'textfield', | |
'#title' => t('Join our Newsletter'), | |
'#required' => TRUE, | |
'#attributes' => array( | |
'placeholder' => t('[email protected]'), | |
), | |
), | |
'submit' => array( | |
'#type' => 'submit', | |
'#value' => t('Subscribe'), | |
'#ajax' => array( | |
'callback' => 'demo_form_ajax_submit', | |
'wrapper' => 'demo-demo-form', | |
'method' => 'replace', | |
'effect' => 'fade', | |
), | |
), | |
); | |
} | |
/** | |
* Ajax callback function. | |
*/ | |
function demo_form_ajax_submit($form, $form_state) { | |
// Dummy/dumb validation for demo purpose. | |
if (!empty($form_state['input']['email'])) { | |
return 'Subscribed !'; | |
} | |
else { | |
return $form; | |
} | |
} |
Works great... I slightly modified the AJAX response to:
return 'Dear '.$form_state['input']['email'].', you are Subscribed!';
Thanks for the example
thank for good example..
Thanks a lot, this is exactly what i was looking for.
very good example... but i can't make it to work if i add to my fields there something like:
'onChange' => 'this.form.submit();'
my wish would be to auto submit the form when values are changed, plus make this an ajax form :)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Realy easy (: thanks a lot!