recaptcha('6LeNWaQUAAAAAOnei_86FAp7aRZCOhNwK3e2o2x2', 'Recaptcha Error')->validate('g-recaptcha-response'); // check for errors if ($validator->hasErrors()) { $_SESSION['errors']['dependent-fields'] = $validator->getAllErrors(); } else { $email_config = array( 'sender_email' => 'contact@phpformbuilder.pro', 'sender_name' => 'Php Form Builder', 'recipient_email' => 'gilles.migliori@gmail.com', 'subject' => 'Php Form Builder - Contact Form', 'filter_values' => 'dependent-fields' ); $sent_message = Form::sendMail($email_config); Form::clear('dependent-fields'); } } /* ================================================== The Form ================================================== */ $form = new Form('dependent-fields', 'horizontal', 'data-fv-no-icon=true, novalidate'); // $form->setMode('development'); /* Select */ $form->startFieldset('Hidden fields depend on Select value'); $form->addHelper('If other, please tell us more ... ', 'subject'); $form->addOption('subject', 'Support', 'Support', '', 'data-icon=fa fa-info-circle'); $form->addOption('subject', 'Sales', 'Sales', '', 'data-icon=fa fa-usd'); $form->addOption('subject', 'Other', 'Other', '', 'data-icon=fa fa-question-circle'); $form->addSelect('subject', 'Your request concerns ...', 'class=selectpicker, required'); $form->startDependentFields('subject', 'Other'); $form->addInput('text', 'subject-other', '', '', 'placeholder=Please tell more about your request ...'); $form->endDependentFields(); // preselect US if (!isset($_SESSION['dependent-fields']['country'])) { $_SESSION['dependent-fields']['country'] = 'US'; } $form->addHelper('Enter Additional informations if non-US', 'country'); $options = array( 'plugin' => 'bootstrap-select', 'lang' => 'en', 'flags' => true, 'flag_size' => 16, 'return_value' => 'code', ); $form->addCountrySelect('country', 'country: ', 'title=Select a country', $options); // Inverted Dependent field - if non-US selected $form->startDependentFields('country', 'US', true); $form->addTextarea('additional-informations', '', 'Additional informations'); $form->endDependentFields(); $form->endFieldset(); /* Radio */ $form->startFieldset('Hidden fields depend on Radio value'); $form->setCols(0, 12); $form->addRadio('radio_group_1', 'Show dependent fields', 1); $form->addRadio('radio_group_1', 'Hide dependent fields', 0); $form->printRadioGroup('radio_group_1', '', true, 'required'); $form->startDependentFields('radio_group_1', 1); $form->groupInputs('civility', 'name'); $form->setCols(3, 2); $form->addOption('civility', 'M.', 'M.'); $form->addOption('civility', 'Mrs', 'Mrs'); $form->addOption('civility', 'Ms', 'Ms'); $form->addSelect('civility', 'Civility', 'class=select2, required'); $form->setCols(2, 5); $form->addInput('text', 'name', '', 'Name', 'required'); $form->setCols(3, 9); // Dependent field inside previous one $form->startDependentFields('civility', 'Mrs'); $form->addInput('text', 'maiden_name', '', 'Maiden Name'); $form->endDependentFields(); $form->endDependentFields(); $form->endFieldset(); /* Checkbox */ $form->startFieldset('Hidden fields depend on Checkbox value'); $form->addCheckbox('checkbox_group_1', 'Show', 1); $form->addCheckbox('checkbox_group_1', 'Do nothing special', 0); $form->printCheckboxGroup('checkbox_group_1', 'Show dependent field if "show" is checked'); $form->startDependentFields('checkbox_group_1', 1); $form->addInput('text', 'your_name', '', 'Your Name'); $form->endDependentFields(); $form->addCheckbox('checkbox_group_2', 'Red', 'Red'); $form->addCheckbox('checkbox_group_2', 'Blue', 'Blue'); $form->addCheckbox('checkbox_group_2', 'Green', 'Green'); $form->addCheckbox('checkbox_group_2', 'Yellow', 'Yellow'); $form->printCheckboxGroup('checkbox_group_2', 'Show dependent field if any other than 1st is checked'); $form->startDependentFields('checkbox_group_2', 'Red', true); $form->addRadio('are_you_sure', 'No', 0); $form->addRadio('are_you_sure', 'Yes', 1); $form->printRadioGroup('are_you_sure', 'Are you sure ?'); $form->endDependentFields(); $form->endFieldset(); /* Nested */ $form->startFieldset('Nested dependent fields'); $form->addRadio('level_1', 'Show level 1', 1); $form->addRadio('level_1', 'Hide level 1', 0); $form->printRadioGroup('level_1', '', true, 'required'); // START level 1 $form->startDependentFields('level_1', 1); $form->addRadio('level_2', 'Show level 2', 1); $form->addRadio('level_2', 'Hide level 2', 0); $form->printRadioGroup('level_2', '', true, 'required'); // START level 2 $form->startDependentFields('level_2', 1); $form->addInput('text', 'level-2-field', '', 'Level 2 field', 'required'); // END level 2 $form->endDependentFields(); // END level 1 $form->endDependentFields(); $form->setCols(3, 9, 'sm'); $form->addRecaptchaV3('6LeNWaQUAAAAAGO_c1ORq2wla-PEFlJruMzyH5L6', 'bs4-dependent-fields'); $form->addBtn('reset', 'reset-btn', 1, 'Reset ', 'class=btn btn-warning', 'my-btn-group'); $form->addBtn('submit', 'submit-btn', 1, 'Send ', 'class=btn btn-success ladda-button, data-style=zoom-in', 'my-btn-group'); $form->printBtnGroup('my-btn-group'); // Custom radio & checkbox css $form->addPlugin('nice-check', 'form', 'default', ['%skin%' => 'purple']); // jQuery validation $form->addPlugin('formvalidation', '#dependent-fields'); ?>