email()->validate('user-email'); // check for errors if ($validator->hasErrors()) { $_SESSION['errors'][$form_id] = $validator->getAllErrors(); // register errors in a custom session variable to transmit to ajax dynamic form // because errors will be registered & cleared when we construct the form $_SESSION['ajax-errors'][$form_id] = $_SESSION['errors'][$form_id]; } else { $email_config = array( 'sender_email' => 'contact@phpformbuilder.pro', 'sender_name' => 'Php Form Builder', 'recipient_email' => addslashes($_POST['user-email']), 'subject' => 'Php Form Builder - Dynamic fields Form 2', 'filter_values' => $form_id, 'sent_message' => '
Your message has been successfully sent !
' ); $sent_message = Form::sendMail($email_config); Form::clear($form_id); if (isset($_SESSION['ajax-errors'][$form_id])) { unset($_SESSION['ajax-errors'][$form_id]); } } } // clear dynamic errors on page load if ($_SERVER["REQUEST_METHOD"] !== "POST" && isset($_SESSION['ajax-errors'][$form_id])) { unset($_SESSION['ajax-errors'][$form_id]); } /* ================================================== The Form ================================================== */ $form = new Form($form_id, 'horizontal', 'novalidate', 'material'); // $form->setMode('development'); $options = array( 'elementsWrapper' => '' ); $form->setOptions($options); $form->setCols(2, 8, 'md'); $form->addInput('email', 'user-email', '', 'Your email', 'placeholder=Email, required'); $form->setCols(2, 3, 'md'); $form->groupInputs('job-1', 'person-1'); $form->addOption('job-1', '', 'Choose one ...', '', 'disabled, selected'); $form->addOption('job-1', 'Content writer', 'Content writer'); $form->addOption('job-1', 'Tech Support / Technical Leader', 'Tech Support / Technical Leader'); $form->addOption('job-1', 'Office Assistant', 'Office Assistant'); $form->addOption('job-1', 'Secretary', 'Secretary'); $form->addOption('job-1', 'Team Leader', 'Team Leader'); $form->addOption('job-1', 'Data Analyst', 'Data Analyst'); $form->addOption('job-1', 'Safety Officer', 'Safety Officer'); $form->addOption('job-1', 'Delivery Boy', 'Delivery Boy'); $form->addOption('job-1', 'Admin Assistant', 'Admin Assistant'); $form->addSelect('job-1', 'Job', 'class=job, required'); $form->addOption('person-1', '', 'Choose one ...', '', 'disabled, selected'); $form->addOption('person-1', 'Adam Bryant', 'Adam Bryant'); $form->addOption('person-1', 'Lillian Riley', 'Lillian Riley'); $form->addOption('person-1', 'Paula Day', 'Paula Day'); $form->addOption('person-1', 'Kelly Stephens', 'Kelly Stephens'); $form->addOption('person-1', 'Russell Hawkins', 'Russell Hawkins'); $form->addOption('person-1', 'Carl Watson', 'Carl Watson'); $form->addOption('person-1', 'Judith White', 'Judith White'); $form->addOption('person-1', 'Tina Cook', 'Tina Cook'); $form->addSelect('person-1', 'Person', 'class=person, required'); // Dynamic fields - container + add button $form->addHtml(''); $form->addHtml('