-
Notifications
You must be signed in to change notification settings - Fork 0
/
example.php
87 lines (78 loc) · 2.56 KB
/
example.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
// Include composer's autoloader
include "vendor/autoload.php";
// Create form's fields
$fields = [
'name' => [
'label' => 'Name',
'type' => 'text',
'rules' => 'required|maxLength[25]',
'attribs' => [
'class' => 'a_class',
],
],
'email' => [
'label' => 'E-mail',
'type' => 'email',
'rules' => 'validEmail',
],
'age' => [
'label' => 'Age',
'type' => 'number',
'rules' => 'required|greaterThan[17]|lessThan[61]',
],
'message' => [
'label' => 'Message',
'type' => 'textarea',
'rules' => 'required',
],
'submit' => [
'label' => 'Submit',
'type' => 'submit',
'rules' => 'ignore',
],
];
// Form's attributes, the method by default is POST
$attributes = ['action' => './example.php'];
$form = new \PHPForms\Form($fields, $attributes);
// If the form is submitted
if (!empty($_POST)) {
// We get the error messages and create the validations object
$errors = include "./src/errors.php";
$validations = new \PHPForms\Validations($errors);
// We create the Validator object and pass the form, post data and Validations
$validator = new \PHPForms\Validator($form, $_POST, $validations);
if (!$validator->isValid()) {
// If the data did not pass the validation rules
echo '<h4>Errors:</h4>';
// We print the errors
foreach ($validator->getErrors() as $error) {
echo htmlspecialchars($error).'<br />';
}
} else {
// Data passed the validation rules
// We get the valid data
$data = $validator->getValidData();
// Create an ExportCSV object and we pass to it the file name and the data
$exportCSV = new \PHPForms\ExportCSV('./data.csv', $data);
// We want to map the fields to different column names
$exportCSV->setMap([
'name' => 'First name',
'email' => 'E-mail',
'age' => 'Age',
'message' => 'Comment',
]);
// And then we export the data
if ($exportCSV->export()) {
echo 'Data exported successfully!<br />';
} else {
echo 'Something went wrong while exporting the data.<br />';
}
}
}
// We create the form
// Remember that this is not mandatory, you can create a form manually
// Just remember to use the same field names as defined in the Form object
echo $form->getHTML();