tompouss Petit chat | Bonjour,
je suis entrain de bosser sur un site one page contenant 3 formulaires et utilisant avec Boostrap 4.
J'ai suivi les recommandations Boostrap 4 concernant la validation des données, à savoir utiliser la validation HTML 5, qui fonctionne plutot pas mal.
https://getbootstrap.com/docs/4.4/c [...] validation
=> si les données sont valides, la page scroll jusqu'au formulaire suivant (c'est du javascript et le scroll fonctionne avec des ancres)
Mais je me demandais comment gérer la validation côté serveur sachant que les données seront introduites en db tout en interférant pas avec le front ?
Dois-je utiliser de l'ajax d'office ?
un de mes formulaires:
Le Javascript:
Code :
- $('#register-form').on('submit', function (event) {
- event.preventDefault();
- event.stopPropagation();
-
- if ($('#register-form').isValid() === false) {
- $('.form-alert').removeClass('d-none');
- } else {
- userInfos.firstname = $('#inputFirstname').val();
- $section = $('#section-questions');
- goToNextSection($section);
- }
- $('#register-form').addClass('was-validated');
- return false;
- });
|
pour l'instant voici ce que j'ai dans mon fichier php
Code :
- if (isset($_POST)) {
- $data = [];
- $errors = false;
- $user_data = [];
- $quizzName = $_SESSION['quizz_path'];
- $user_data['lang'] = $_SESSION['lang'];
- $user_data['first_name'] = filter_input(INPUT_POST, 'first_name', FILTER_SANITIZE_STRING);
- $user_data['last_name'] = trim(filter_input(INPUT_POST, 'last_name', FILTER_SANITIZE_STRING));
- $user_data['gender'] = trim(filter_input(INPUT_POST, 'gender', FILTER_SANITIZE_STRING));
- $user_data['address'] = trim(filter_input(INPUT_POST, 'address', FILTER_SANITIZE_STRING));
- $user_data['address_no'] = trim(filter_input(INPUT_POST, 'address_no', FILTER_SANITIZE_STRING));
- $user_data['city'] = trim(filter_input(INPUT_POST, 'city', FILTER_SANITIZE_STRING));
- $user_data['zip'] = trim(filter_input(INPUT_POST, 'zip', FILTER_SANITIZE_STRING));
- $user_data['phone'] = trim(filter_input(INPUT_POST, 'phone', FILTER_SANITIZE_STRING));
- $_SESSION['user_firstname'] = $user_data['first_name'];
-
- //get birtdhay (cant sanatize)
- $birthday = $_POST["birthday"];
- foreach ($user_data as $key => $value) {
- if (empty($user_data[$key])) {
- $errors = true;
- break;
- }
- }
- $quizzName = $_SESSION['quizz_path'];
- //formatting birthday date
- $format = 'Y-m-d';
- $user_data['birthday'] = DateTime::createFromFormat($format, $birthday);
- $previousURL = $_SERVER['HTTP_REFERER'];
- if ($errors) //if errors have been detected in the form do nothing
- {
-
- } else { //else, go to next form
-
- }
|
Merci pour votre aide
Tom Message édité par tompouss le 27-11-2019 à 12:33:57 ---------------
collectionneur de pâtes thermiques
|