Bonjour,
Je débute en PHP, j'ai fais une petite page html qui demande d'entrer un mot dans un champ.
Avant d'envoyer le formulaire vers le serveur, je voudrais vérifier:
- que le champ est bien rempli.
- que ça soit une chaine de caractère (pas de chiffre)
- qu'il n'y ai que un seul mot dans le champs.
La seul vérification qui fonctionne pour le moment, c'est que le champs soit bien rempli.
html
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <title>Test PHP</title> <script src="jquery-3.4.1.min.js"></script> <script src="script.js"></script> </head> <body> <form method="post" action="traitementAjax.php"> <p>Entrer un mot:<input type="text" name="mot" id="mot" autofocus/><button type="submit" id="submit">Submit</button></p> <div id="responseAjax"></div> </form> </body> </html>
responseAjax.php
script.js
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <?php $mot = mb_strtoupper($_POST["mot"]); //expressions régulières if (empty($mot)) {//si le champs est vide $errors['emptyField'] = "Veuillez remplir le champs!"; } elseif (preg_match (" ^\w+$ ", $mot)) {//test chaine de caractère $errors['onlyChars'] = "Votre mot ne peut contenir que des caractères"; }else { echo trim($mot);//un seul mot } // pour afficher les msg d'erreur foreach($errors as $error) { echo $error; } //écriture dans fichier texte $fp = fopen('data.txt','a+'); fwrite($fp,$mot); fclose($fp); ?>
Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 "use strict"; //Avec ajax $(document).ready(function() { $("#submit").click(function(e) { e.preventDefault();//c'est l'équivalente de return false var mot = $("#mot").val(); $.ajax({ method: "POST",//method au lieu de type url: "traitementAjax.php", data: {"mot":mot},//envoyer les données en tant qu'objet javascript {} cache: false }) .done(function(result){//utiliser done au lieu de success $("#responseAjax").html(result).hide().fadeIn(2000);//apparait progressivement }) .fail(function(err){//utiliser fail pour voir si y'a des erreurs... alert('Erreur ajax :'+err); }) }); });
pour le deuxième test, chaine de caractère, j'ai l'erreur suivante.
Peut-être que quelqu'un de plus aguerri avec PH et surtout avec les expressions régulières saura me mettre sur la bonne voie.
Partager