email()->validate('user-email'); // check for errors if ($validator->hasErrors()) { $_SESSION['errors']['customer-support-form'] = $validator->getAllErrors(); } else { /* Send email with attached file(s) */ $path = ROOT . '/file-uploads/'; $attachments = ''; if (isset($_POST['attachment']) && !empty($_POST['attachment'])) { $posted_file = FileUploader::getPostedFiles($_POST['attachment']); $attachments = $path . $posted_file[0]['file']; } $email_config = array( 'sender_email' => 'contact@phpformbuilder.pro', 'sender_name' => 'Php Form Builder', 'recipient_email' => addslashes($_POST['user-email']), 'subject' => 'Php Form Builder - Customer Support Form', 'attachments' => $attachments, 'filter_values' => 'customer-support-form, attachment' ); $sent_message = Form::sendMail($email_config); Form::clear('customer-support-form'); } } /* ============================================= Select the products categories ============================================= */ require_once ROOT . '/phpformbuilder/database/db-connect.php'; require_once ROOT . '/phpformbuilder/database/Mysql.php'; $categories = array(); $qry = 'SELECT productlines.productLine FROM productlines ORDER BY productlines.productLine DESC'; $db = new Mysql(); $db->query($qry); $db_count = $db->rowCount(); if (!empty($db_count)) { while (! $db->endOfSeek()) { $row = $db->row(); $categories[] = $row->productLine; } } /* ================================================== The Form ================================================== */ $form = new Form('customer-support-form', 'horizontal', 'novalidate', 'bs3'); // $form->setMode('development'); $form->startFieldset('Please fill the form below'); $form->setCols(4, 4); $form->groupInputs('first-name', 'last-name'); $form->addHelper('First name', 'first-name'); $form->addInput('text', 'first-name', '', 'Full Name: ', 'required'); $form->setCols(0, 4); $form->addHelper('Last name', 'last-name'); $form->addInput('text', 'last-name', '', '', 'required'); $form->setCols(4, 8); $form->addInput('email', 'user-email', '', 'E-Mail: ', 'required'); $form->groupInputs('department', 'urgency'); $form->setCols(4, 3); $form->addRadio('department', 'Technical', 'Technical'); $form->addRadio('department', 'Sales', 'Sales'); $form->addRadio('department', 'Billing', 'Billing'); $form->addRadio('department', 'Feedback', 'Feedback'); $form->printRadiogroup('department', 'Department', false, 'required'); $form->setCols(2, 3); $form->addRadio('urgency', 'Low', 'Low'); $form->addRadio('urgency', 'Medium', 'Medium'); $form->addRadio('urgency', 'High', 'High'); $form->printRadiogroup('urgency', 'Urgency', false, 'required'); $form->setCols(4, 8); // empty option for select2 plkaceholder $form->addOption('category', '', ''); for ($i=0; $i < $db_count; $i++) { $form->addOption('category', $categories[$i], $categories[$i]); } $form->addSelect('category', 'Category', 'class=select2, data-placeholder=Choose a category, data-minimum-results-for-search=Infinity, required'); $form->addSelect('product', 'Product', 'class=select2, data-placeholder=Choose a category first, disabled, required'); $form->addTextarea('message', '', 'Please describe your problem', 'cols=20, rows=8, required'); $form->addHelper('Accepted File Types : .pdf, .doc[x], .xls[x], .txt', 'attachment', 'after'); // reload the previously posted file if the form was posted with errors $current_file = ''; if (isset($_POST['attachment']) && !empty($_POST['attachment'])) { $posted_file = FileUploader::getPostedFiles($_POST['attachment']); $current_file_path = ROOT . '/file-uploads/'; $current_file_name = $posted_file[0]['file']; if (file_exists($current_file_path . $current_file_name)) { $current_file_size = filesize($current_file_path . $current_file_name); $current_file_type = mime_content_type($current_file_path . $current_file_name); $current_file = array( 'name' => $current_file_name, 'size' => $current_file_size, 'type' => $current_file_type, 'file' => '/file-uploads/' . $current_file_name, // url of the file 'data' => array( 'listProps' => array( 'file' => $current_file_name ) ) ); } } $fileUpload_config = array( 'upload_dir' => '../../../../../file-uploads/', // the directory to upload the files. relative to phpformbuilder/plugins/fileuploader/default/php/ajax_upload_file.php 'limit' => 1, // max. number of files 'file_max_size' => 5, // each file's maximal size in MB {null, Number} 'extensions' => ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'txt'], 'debug' => true // log the result in the browser's console and shows an error text on the page if the uploader fails to parse the json result. ); $form->addFileUpload('file', 'attachment', '', 'Attach a file', '', $fileUpload_config, $current_file); $form->setCols(0, 12); $form->centerButtons(true); $form->addBtn('submit', 'submit-btn', 1, 'Submit', 'class=btn btn-success ladda-button, data-style=zoom-in'); $form->endFieldset(); // Custom radio & checkbox css $form->addPlugin('nice-check', 'form', 'default', ['%skin%' => 'purple']); // jQuery validation $form->addPlugin('formvalidation', '#customer-support-form'); ?> Bootstrap 3 Customer Support Form - How to create PHP forms easily ============================================= */ include_once '../assets/code-preview-head.php'; ?> printIncludes('css'); ?>

Php Form Builder - Bootstrap Customer Support

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