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', 'foundation');
// $form->setMode('development');
$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->setCols(2, 10, 'md');
$form->addHtml('
');
$form->addHtml('
');
$form->addBtn('button', 'button-add', '', 'Add Element ', 'class=button primary add-element-button', 'btn-add');
$form->printBtnGroup('btn-add');
$form->addHtml('
');
// End Dynamic fields
// cancel/submit
$form->setCols(-1, -1);
$form->centerButtons(true);
$form->addBtn('button', 'cancel', 0, 'Cancel', 'class=button warning', 'btn-group');
$form->addBtn('submit', 'submit-btn', 1, 'Submit', 'class=success button', 'btn-group');
$form->printBtnGroup('btn-group');
// jQuery validation
$form->addPlugin('formvalidation', '#dynamic-fields-form-2');
?>
Foundation Php Form with Ajax dynamic fields - How to create PHP forms easily
printIncludes('css'); ?>
Php Form Builder - Form with dynamic ajax-loaded fieldsClick "+" or "-" buttons to add or remove fields
printIncludes('js');
$form->printJsCode();
?>