Module Description
By using Field Group it's possible to easily turn an entity form into a multipage form, however the paging can only be done on client side which has several disadvantages


* Validation of form fields is very basic, real validation is done after the form is submitted and often user will have to return to previous pages to correct the entered values
* More complex multi page forms often dynamically change what user see in next steps depending on the data entered in previous steps, now that the form pages are ajaxified there is no limitation
* When the form is complex and has many pages with different fields it can become considerably heavy to load since by using only javascript for hiding / showing related fields to each page, the whole form needs to be loaded

This module addresses thess issues by making it possible to enable ajax for multipage groups It also provides developers with special variables attached to form array regarding page status to allow them further customize the form depending on active page

Also it works with any forms even custom ones! Notice : Currently admin user create account form admin/people/create is not supported due to a bug in core #208790: Changing "Create new account" button text breaks admin/user/user/create form

Usage - Setup your multipage field groups as usual for your entity/node - In your entity/node fields list , edit your multipage field group properties and check Ajaxify option

If you're a developer and like to implement more complex multi page forms you can use the following variables - $form_state['field_group_ajaxified_multipage_enabled'] - $form_state['field_group_ajaxified_multipage_group']

Sample code for using these variables :

function hook_form_alter(&$form, &$form_state, $form_id) { if (isset($form_state['field_group_ajaxified_multipage_enabled'])) if ($form_state['field_group_ajaxified_multipage_enabled']) { $step = empty($form_state['storage']['field_group_ajaxified_multipage_step']) ? 1 : $form_state['storage']['field_group_ajaxified_multipage_step']; $page_group = $form_state['field_group_ajaxified_multipage_group']; if ($page_group['children'][$step-1] == 'group_two') { $form['actions']['skip'] = $form['actions']['next']; $form['actions']['skip']['#value'] = t('Skip this step'); $form['actions']['skip']['#limit_validation_errors'] = array(); } if ($step == count($page_group['children'])) { unset($form['actions']['preview']); } } } Sample code for enableling for custom developed forms :

function myform() { $form['#groups_custom'] = array ( 'group_measurements' => array( 'group_name' => 'group_measurements', 'label' => 'Measurements', 'format_type' => 'multipage', 'children' => array ( 'gender', 'birthday', ), ), 'group_goal' => array( 'group_name' => 'group_goal', 'label' => 'Goal', 'format_type' => 'multipage', 'children' => array ( 'overall_objectiv', 'duration', ), ), 'group_steps' => array( 'group_name' => 'group_steps', 'label' => 'Steps', 'format_type' => 'multipage-group', 'children' => array ( 'group_measurements', 'group_goal', ), 'format_settings' => array ( 'label' => 'Steps', 'instance_settings' => array ( 'ajaxify' => '1', 'classes' => ' group-steps field-group-multipage-group', 'page_header' => '3', 'page_counter' => '1', 'move_button' => '1', 'move_additional' => '1', ), ), ), ); }
Project Usage
261
Creation Date
Changed Date
Security Covered
Covered By Security Advisory
Version Available
Production
Module Summary
This module aims to solve the issues related to turning an entity form into a multipage form with client-side paging, including basic form validation, dynamic form changes, and heavy loading due to javascript usage.
Data Name
field_group_ajaxified_multipage

OPENAI CHATBOT

OPENAI CHATBOT

09:50:00
Generic Chatbot
Hi, I'm a Drupal module expert powered by OpenAI, answering your questions about the Drupal module ecosystem. How can I be helpful today? Please note that we will log your question.