Virgule acceptée dans un formulaire
Résolu/Fermé
Tzmagnum
Messages postés
126
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
10 mai 2022
-
19 nov. 2020 à 22:14
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 19 nov. 2020 à 23:51
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 19 nov. 2020 à 23:51
A voir également:
- Virgule acceptée dans un formulaire
- Formulaire de réclamation facebook - Guide
- Vinted offre acceptée mais pas de paiement - Guide
- Confirmer le nouvel envoi du formulaire err_cache_miss - Forum Google Chrome
- Confirmation de l'envoi d'un formulaire html ✓ - Forum HTML
- Problème d'envoi de formulaire ✓ - Forum PHP
4 réponses
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
19 nov. 2020 à 22:27
19 nov. 2020 à 22:27
Bonjour
Essaye avec
Essaye avec
<input type="number" step="any" />
Tzmagnum
Messages postés
126
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
10 mai 2022
19 nov. 2020 à 22:40
19 nov. 2020 à 22:40
Cela ne change rien sa me demande un entier
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
19 nov. 2020 à 22:48
19 nov. 2020 à 22:48
Avec l'attribut step="any" tu devrais pouvoir mettre des float
par contre, le séparateur décimal, c'est le point.
Si tu veux utiliser comme séparateur, la virgule, dans ce cas il te faudra passer par un input type text et utiliser du javascript pour autoriser que les caractères désirés... mais ça risque de te poser des soucis pour ensuite utiliser ces nombres dans tes calculs en php.
par contre, le séparateur décimal, c'est le point.
Si tu veux utiliser comme séparateur, la virgule, dans ce cas il te faudra passer par un input type text et utiliser du javascript pour autoriser que les caractères désirés... mais ça risque de te poser des soucis pour ensuite utiliser ces nombres dans tes calculs en php.
Tzmagnum
Messages postés
126
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
10 mai 2022
19 nov. 2020 à 23:00
19 nov. 2020 à 23:00
Même avec les points sa passe pas
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
19 nov. 2020 à 23:03
19 nov. 2020 à 23:03
Tu parles bien de tes inputs comme
Et donc, si tu les remplace par
ça ne marche pas ??
Tu as vidé le cache de ton navigateur ?
Au pire, remplace le "any" par 0.01
si ça ne fonctionne toujours pas, montre nous ton code modifié et précise nous quel navigateur internet tu utilises.
<input type="number" name="R" />
Et donc, si tu les remplace par
<input type="number" name="R" step="any" />
ça ne marche pas ??
Tu as vidé le cache de ton navigateur ?
Au pire, remplace le "any" par 0.01
<input type="number" name="R" step="0.01" />
si ça ne fonctionne toujours pas, montre nous ton code modifié et précise nous quel navigateur internet tu utilises.
Le cache de mon navigateur est vide c'est chrome, voici le code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <?php header('Content-type: text/html; charset=utf-8'); //------------------------------------------------------------// //Récupération propre des variables: //------------------------------------------------------------// $A = isset($_POST['A']) ? (float)$_POST['A'] : 0; $R = isset($_POST['R']) ? (float)$_POST['R'] : 0; $C = isset($_POST['C']) ? (float)$_POST['C'] : 0; $Q = isset($_POST['Q']) ? (float)$_POST['Q'] : 0; $S = isset($_POST['S']) ? (float)$_POST['S'] : 0; if($R>0 && $S>0){ $resultat = ($A * $C / $R) * $Q / $S; } //------------------------------------------------------------// //le temps des tests :. //------------------------------------------------------------// if(!preg_match("#^[0-9]+$#", $_POST['A']) || !preg_match("#^[0-9]+$#", $_POST['R']) || !preg_match("#^[0-9]+$#", $_POST['Q']) || !preg_match("#^[0-9]+$#", $_POST['S'])){ ?> <form method="post" action=""> <label for="nb_tot_j_tr" class="float">Nombre total de jour de travail à prendre en compte pour le calcul de la durée des vacances : </label> <p> <input type="number" name="A" step="0.01" /> </p> <label for="nb_moy_j_sem" class="float">Nombre moyen de jours par semaine durant lesquels le travailleur est censé travailler sur la base de son contrat : </label> <p> <input type="number" name="R" step="0.01" /> </p> <label for="nb_moy_h_semc" class="float">Nombre moyen d'heures par semaine durant lesquelles le travailleur est censé travailler sur la base de son contrat : </label> <p> <input type="number" name="Q" step="0.01" /> </p> <label for="nb_moy_h_sem" class="float">Nombre moyen d'heures par semaine durant lesquelles un travailleur à temps plein est censé travailler : </label> <p> <input type="number" name="S" step="0.01" /> </p> <input type="hidden" name="C" value="5" /> <input type="submit" value="Calculer" /> </form> <?php } else { if ($resultat >= 0 && $resultat < 10) { echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à aucun jour de congé'; }elseif ($resultat >= 10 && $resultat < 20) { // on teste si la valeur de notre variable est comprise entre 10 et 19 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 1 jour de congé'; }elseif ($resultat >= 20 && $resultat < 39) { // on teste si la valeur de notre variable est comprise entre 20 et 38 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 2 jours de congés'; }elseif ($resultat >= 39 && $resultat < 48) { // on teste si la valeur de notre variable est comprise entre 39 et 47 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 3 jours de congés'; }elseif ($resultat >= 48 && $resultat < 64) { // on teste si la valeur de notre variable est comprise entre 48 et 63 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 4 jours de congés'; }elseif ($resultat >= 64 && $resultat < 77) { // on teste si la valeur de notre variable est comprise entre 64 et 76 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 5 jours de congés'; }elseif ($resultat >= 77 && $resultat < 87) { // on teste si la valeur de notre variable est comprise entre 77 et 86 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 6 jours de congés'; }elseif ($resultat >= 87 && $resultat < 97) { // on teste si la valeur de notre variable est comprise entre 87 et 96 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 7 jours de congés'; }elseif ($resultat >= 97 && $resultat < 107) { // on teste si la valeur de notre variable est comprise entre 97 et 106 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 8 jours de congés'; }elseif ($resultat >= 107 && $resultat < 125) { // on teste si la valeur de notre variable est comprise entre 107 et 124 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 9 jours de congés'; }elseif ($resultat >= 125 && $resultat < 135) { // on teste si la valeur de notre variable est comprise entre 125 et 134 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 10 jours de congés'; }elseif ($resultat >= 135 && $resultat < 144) { // on teste si la valeur de notre variable est comprise entre 135 et 144 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 11 jours de congés'; }elseif ($resultat >= 144 && $resultat < 154) { // on teste si la valeur de notre variable est comprise entre 144 et 154 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 12 jours de congés'; }elseif ($resultat >= 154 && $resultat < 163) { // on teste si la valeur de notre variable est comprise entre 154 et 162 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 13 jours de congés'; }elseif ($resultat >= 163 && $resultat < 182) { // on teste si la valeur de notre variable est comprise entre 163 et 181 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 14 jours de congés'; }elseif ($resultat >= 182 && $resultat < 192) { // on teste si la valeur de notre variable est comprise entre 182 et 191 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 15 jours de congés'; }elseif ($resultat >= 192 && $resultat < 202) { // on teste si la valeur de notre variable est comprise entre 192 et 201 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 16 jours de congés'; }elseif ($resultat >= 202 && $resultat < 212) { // on teste si la valeur de notre variable est comprise entre 202 et 211 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 17 jours de congés'; }elseif ($resultat >= 202 && $resultat < 221) { // on teste si la valeur de notre variable est comprise entre 212 et 220 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 18 jours de congés'; }elseif ($resultat >= 221 && $resultat < 231) { // on teste si la valeur de notre variable est comprise entre 221 et 230 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 19 jours de congés'; }elseif ($resultat >= 231 && $resultat > 231) { // on teste si la valeur de notre variable est comprise entre 231 et 230 echo 'Vu que vous avez travaillé ' .$resultat.' jour(s) l\'année précédente vous avez droit à 20 jours de congés'; } else { // si les deux tests précédents n'ont pas aboutis, alors on tombe dans ce cas echo ''; } } ?>
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
>
tzmagnum
19 nov. 2020 à 23:51
19 nov. 2020 à 23:51
Déjà,
ça serait bien d'utiliser correctement les balises de code en y précisant le langage ( je viens d'éditer ton précédent message pour le mettre)
Explications à lire ENTIEREMENT disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite,
tu demandais pourquoi tes cases n'autorisaient pas les nombres à virgule ....
Je pensais que tu ne pouvais pas écrire dedans ... pas que tu avais un souci ensuite au submit ...
Donc oui, c'est bien tes regex qui ne sont pas bonnes
essayes avec
ça serait bien d'utiliser correctement les balises de code en y précisant le langage ( je viens d'éditer ton précédent message pour le mettre)
Explications à lire ENTIEREMENT disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite,
tu demandais pourquoi tes cases n'autorisaient pas les nombres à virgule ....
Je pensais que tu ne pouvais pas écrire dedans ... pas que tu avais un souci ensuite au submit ...
Donc oui, c'est bien tes regex qui ne sont pas bonnes
essayes avec
^[0-9\.]+$