IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] détection des problèmes de saisie dans ma page web


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 219
    Points : 61
    Points
    61
    Par défaut [PHP-JS] détection des problèmes de saisie dans ma page web
    Bonjour,
    J'ai une page où les gens doivent saisir des chiffres. Ensuite lorsqu'ils ont fini, ils cliquent que envoyer et je voudrais qu'un message d'erreur s'affiche si il y a des chiffres à virgule ou supérieurs à 1000.
    Comment faire?

  2. #2
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    avec l'expression booléenne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    !is_int($lechiffre) || ($lechiffre > 1000)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 219
    Points : 61
    Points
    61
    Par défaut
    ok merci je vais essayer ça

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 219
    Points : 61
    Points
    61
    Par défaut
    En fait j'ai plusieurs "zone de texte" et je veux toutes les tester et si il y en a une avec une valeur abberante lorsque je clique sur envoyer un message apparaît. Donc comment tester toutes les zones de texte?

  5. #5
    Membre habitué Avatar de Aliosha
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 124
    Points : 138
    Points
    138
    Par défaut
    Citation Envoyé par coco38
    En fait j'ai plusieurs "zone de texte" et je veux toutes les tester et si il y en a une avec une valeur abberante lorsque je clique sur envoyer un message apparaît. Donc comment tester toutes les zones de texte?
    Pour le message à faire apparaître, il faut du JavaScript (sinon recharger la page avec un message d'erreur).

    Si tu as appelé tes zones de texte texte1, texte2, texte3, etc, fais une boucle...
    « Le vécu-plat excite le chaos-rêve. » Traité de l'inactivité, Dimitri Grouchkch.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 219
    Points : 61
    Points
    61
    Par défaut
    mes zones de textes c nb_sc, nb_sb, nj_sc,...mais le truc c'est que je vois pas comment faire ma boucle justement...

  7. #7
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mes zones de textes c nb_sc, nb_sb, nj_sc
    c'est le nom de tes champs?
    Peux tu nous poster ton formulaire?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 219
    Points : 61
    Points
    61
    Par défaut
    oui c'est le nom de mes champs...
    Je peux pas mettre tout car c'est super long mais en voici un aperçu (il y en a encore 2 comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <td><strong>NB<strong></td>
      <td><input type="text" maxlength=5 name="nb_sb" size=10 onkeypress="if ((event.keyCode < 48) || (event.keyCode > 57)) event.returnValue = false;" value="0"></td>
      <td><input type="text" maxlength=5 name="nb_sc" size=10 onkeypress="if ((event.keyCode < 48) || (event.keyCode > 57)) event.returnValue = false;" value="0"></td>
      <td><input type="text" maxlength=5 name="nb_va" size=10 onkeypress="if ((event.keyCode < 48) || (event.keyCode > 57)) event.returnValue = false;" value="0"></td>
      <td><input type="text" maxlength=5 name="nb_vs" size=10 onkeypress="if ((event.keyCode < 48) || (event.keyCode > 57)) event.returnValue = false;" value="0"></td>
      <td>

  9. #9
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    voici une boucle qui peut passer en revue tes champs. Mais il y a encore un souci dans le code ci-dessous. C'est que la fonction is_int va toujours trouver false car ce qui vient d'un champ est toujours du texte. Faut donc voir au niveau de la conversion de type. Je vais essayer de regarder. Si quelqu'un à la solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php 
    foreach($_POST as $key=>$value){
    	if (preg_match('/^nb_/',$key)){
    		if ($value > 1000)  echo $value.' > 1000<br />';
    		elseif (!is_int($value)) echo $value.' not integer<br />';
    	}
    }
     
    ?>

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 219
    Points : 61
    Points
    61
    Par défaut
    Merci je vais voir ça

  11. #11
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    Bon la conversion de type se fait en utilisant intval. (y'a peut être d'autres solutions). le truc c'est que si ton utilisateur écrit une chaine, la valeur deviendra 0. Est que 0 peut être une entrée valide?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    foreach($_POST as $key=>$value){
    	if (preg_match('/^nb_/',$key)){
    		$value = intval($value);
    		if ($value > 1000)  echo $value.' > 1000<br />';
    		elseif (!is_int($value) && $value == 0) echo $value.' not integer<br />';
    	}
    }

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 219
    Points : 61
    Points
    61
    Par défaut
    oui la valeur 0 peut_être valide mais je ne pense pas que l'utilisateur rentrera une chaine. Merci beaucoup mais ce code je le rentre où?

  13. #13
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    tu peux le mettre avant le traitement des données de ton formulaire.
    C'est une sorte de vérification si j'ai bien compris.
    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
    function checkFields($data){
    	$errorFlag = 0;
    	foreach($data as $key=>$value){
    		if (preg_match('/^nb_/',$key)){
    			$value = intval($value);
    			if ($value > 1000 || !is_int($value)) {
    				echo $value.'is not a correct value.<br />';
    				$errorFlag ++;
    			}
    		}
    	}
    	if ($errorFlag == 0) return true;
    	else return false;
    }
     
    if (checkFields($_POST)){
    	// traitement de ton formulaire
    }
    Y'a peut être d'autres façons de faire. Mais ceci devrait marcher.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 219
    Points : 61
    Points
    61
    Par défaut
    Merci je vais essayer ça. Et oui c'est une vérification, tu as bien compris

  15. #15
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    Au fait j'ai encore une petite question, comment on fait si je ne veux pas de chiffres décimaux???
    tu peux remplacer is_int par is_float, je pense.
    http://us2.php.net/manual/fr/function.is-float.php

    Merci de nous faire part de tes autres questions sur le forum plutot que par message privé s'il te plait. De cette manière tu peux avoir des réponses plus pertinentes que la mienne (et dieu sait qu'il y en a ) et d'autres peuvent en bénéficier.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VexFlow : des partitions et tablatures dans vos pages Web !
    Par FirePrawn dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/01/2013, 08h21
  2. Problème affichage vidéo dans une page web
    Par paradeofphp dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 04/06/2010, 09h12
  3. Réponses: 25
    Dernier message: 12/04/2007, 11h32
  4. problème de cadence dans une page web
    Par smh_master dans le forum Flash
    Réponses: 3
    Dernier message: 26/03/2007, 16h42
  5. [VBA-E] afficher des données apres saisie dans cellule
    Par user0505 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/04/2006, 14h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo