email()->validate('user-email'); // check for errors if ($validator->hasErrors()) { $_SESSION['errors']['car-rental-form'] = $validator->getAllErrors(); } else { $email_config = array( 'sender_email' => 'contact@phpformbuilder.pro', 'sender_name' => 'Php Form Builder', 'recipient_email' => addslashes($_POST['user-email']), 'subject' => 'Php Form Builder - Car Rental Form', 'filter_values' => 'car-rental-form' ); $sent_message = Form::sendMail($email_config); Form::clear('car-rental-form'); } } /* ================================================== The Form ================================================== */ $form = new Form('car-rental-form', 'horizontal', 'data-fv-no-icon=true, novalidate'); // $form->setMode('development'); $form->startFieldset('Rent a car'); /*---------- BS4 collapse 1 ----------*/ $form->addHtml('
'); /* Form First part */ // Locations lists $locations = array( 'Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'District of Columbia', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming' ); /* Pick up */ $form->setCols(3, 4, 'md'); $form->groupInputs('pick-up-location', 'pick-up-date', 'pick-up-time'); foreach ($locations as $loc) { $form->addOption('pick-up-location', $loc, $loc); } $form->addSelect('pick-up-location', 'Pick up location', 'class=selectpicker, data-live-search=true, required'); // set minimum date $now = new DateTime('now'); $date_min = $now->format('Y-m-d'); $form->setCols(0, 3, 'md'); $form->addHelper('Pick-up Date', 'pick-up-date'); $form->addInput('text', 'pick-up-date', '', '', 'class=litepick, data-single-mode=false, data-min-date=' . $date_min . ', data-format=YYYY-MM-DD, data-element-end=drop-off-date, data-split-view=true, required'); $form->setCols(0, 2, 'md'); $form->addPlugin('pickadate', '#pick-up-time', 'pickatime'); $form->addHelper('Pick-up Time', 'pick-up-time'); $form->addInput('text', 'pick-up-time', '', '', 'required'); /* Drop Off */ $form->setCols(3, 4, 'md'); $form->groupInputs('drop-off-location', 'drop-off-date', 'drop-off-time'); foreach ($locations as $loc) { $form->addOption('drop-off-location', $loc, $loc); } $form->addSelect('drop-off-location', 'Drop off location', 'class=selectpicker, data-live-search=true, required'); $form->setCols(0, 3, 'md'); $form->addHelper('Drop-off Date', 'drop-off-date'); $form->addInput('text', 'drop-off-date', '', '', 'readonly, required'); $form->setCols(0, 2, 'md'); $form->addHelper('Drop-off Time', 'drop-off-time'); $form->addInput('text', 'drop-off-time', '', '', 'required'); $form->addPlugin('pickadate', '#drop-off-time', 'pickatime'); // hidden input to show the date/time validation errors $form->addHtml('
'); /* Car type */ $form->setCols(3, 9, 'md'); $form->addRadio('car-type', 'Standart Cars', 'Standart Cars'); $form->addRadio('car-type', 'Convertibles', 'Convertibles'); $form->addRadio('car-type', 'Luxury Cars', 'Luxury Cars'); $form->addRadio('car-type', 'Vans', 'Vans'); $form->addRadio('car-type', 'SUVs', 'SUVs'); $form->printRadioGroup('car-type', 'Car Type', false, 'required'); $form->addHtml('
'); /*---------- BS4 collapse 2 ----------*/ $form->addHtml('
'); /* Form Second part */ $form->addRadio('with', 'GPS navigation system', 'GPS navigation system'); $form->addRadio('with', 'Booster', 'Booster'); $form->addRadio('with', 'Child safety seat', 'Child safety seat'); $form->addRadio('with', 'Additional driver', 'Additional driver'); $form->printRadioGroup('with', 'With', false); $form->addTextarea('additional-requests', '', 'Additional Requests'); $form->addHtml('
'); /*---------- BS4 collapse 3 ----------*/ $form->addHtml('
'); /* Form Third part */ $form->groupInputs('prefix', 'first-name', 'last-name'); $form->setCols(3, 2, 'md'); $form->addOption('prefix', 'Mr', 'Mr'); $form->addOption('prefix', 'Mrs', 'Mrs'); $form->addSelect('prefix', 'Full Name', 'required'); $form->setCols(0, 3, 'md'); $form->addInput('text', 'first-name', '', '', 'placeholder=First Name, required'); $form->setCols(0, 4, 'md'); $form->addInput('text', 'last-name', '', '', 'placeholder=Last Name, required'); $form->setCols(3, 9, 'md'); $form->addInput('email', 'user-email', '', 'E-Mail', 'required'); $form->groupInputs('area-code', 'user-phone'); $form->setCols(3, 2, 'md'); $form->addInput('text', 'area-code', '', 'Phone Number', 'placeholder=303, pattern=^[+0-9-]+$, data-fv-regexp___message=Please enter a valid Area Code, required'); $form->setCols(0, 7, 'md'); $form->addHelper('Enter a valid US phone number', 'user-phone'); $form->addInput('text', 'user-phone', '', '', 'placeholder=202-555-0119, data-fv-phone, data-fv-phone-country=US, required'); /*---------- Close BS3 Panel ----------*/ $form->addHtml('
'); $form->addBtn('submit', 'submit-btn', 1, 'Submit', 'class=btn btn-success mt-4'); $form->endFieldset(); // Custom radio & checkbox css $form->addPlugin('nice-check', 'form', 'default', ['%skin%' => 'yellow']); // jQuery validation $form->addPlugin('formvalidation', '#car-rental-form'); ?> Bootstrap 4 Car Rental Form - How to create PHP forms easily printIncludes('css'); ?>

Car Rental Form

render(); ?>
printIncludes('js'); $form->printJsCode(); ?>