Obliger du numérique dans input type="text"

Résolu
rolly41 Messages postés 281 Statut Membre -  
magicshark Messages postés 445 Statut Membre -
Bonjour,

j'ai une formation en html et php. Pour mettre en pratique ce que j'apprends, je fais une page html et une page php. dans mes pages, je demande a l'utilisateur de mettre une valeur (obligatoirement en chiffre) entre 0 et 200 (saisie non-obligatoire). Pour ce type de donnée, voici la balise utilisé:

<input type="text" maxlength="3" name="choix-concours"/>


Ce code de type texte autorise maximum 3 caractères. Mais je souhaite que seul les chiffres soit autorisé avec comme valeur maximum: 200

Comment puis-je faire ?

Merci d'avance.

5 réponses

  1. Luxerails Messages postés 160 Date d'inscription   Statut Membre Dernière intervention   41
     
    Si tu veux vérifier ce que l'utilisateur a rentré, n'utilise pas d'attribut html ni de javascript car il peux facilement être modifié/désactivé. Tu devras faire une vérification côté serveur en php, par exemple :

    <?php
    if (!is_numeric($_POST['choix-concours']) {
        echo 'Veuillez entrer un nombre';
    } else {
        $var = intval($_POST['choix-concours']);
        if ($var >= 0 && $var <= 200)
            echo 'c\'est bon';
        else
            echo 'Veuillez entre un nombre entre 0 et 200';
    }
    2
  2. rolly41 Messages postés 281 Statut Membre 1
     
    J'ai WampServer installé sur mon pc, pour tester mes fichiers php je dois mettre : localhost/concours/index. html pour avoir cette page:

    <html> 
    <head> 
    </head> 
    <body> 
    <form action="info-concours.php" method="post"> 
    <table align="center" border="0"> 
    <tr><td valign="top" align="right">Date d'ouverture du concours :</td><td>21/08/2011</td></tr> 
    <tr><td valign="top" align="right">Date de fin de participation :</td><td>28/08/2011</td></tr> 
    <tr><td valign="top" align="right">Date du tirage :</td><td>29/08/2011</td></tr> 
    <tr><td valign="top" align="right">Gain :</td><td>5.000 euros</td></tr> 
    <tr><td valign="top" align="right">Contact concours :</td><td><a href="http://www.teste.be/contact.html">Page de contact</a></td></tr> 
    <tr><td valign="top" align="right">Entrez un nombre entre 0 et 200 :</td><td><input type="text" maxlength="3" name="choix-concours"/></td></tr> 
    </table> 
    <div align="center"><input type="submit" name="Validé"/></div> 
    </form> 
    </body> 
    </html>


    et voici le code de la page php :
    <html> 
    <head> 
    </head> 
    <body> 
    <font align="center"> 
    <h4> 
    <table align="center" border="0"> 
    <tr><td valign="top" align="right">Date d'ouverture du concours :</td><td>21/08/2011</td></tr> 
    <tr><td valign="top" align="right">Date de fin de participation :</td><td>28/08/2011</td></tr> 
    <tr><td valign="top" align="right">Date du tirage :</td><td>29/08/2011</td></tr> 
    <tr><td valign="top" align="right">Gain :</td><td>5.000 euros</td></tr> 
    <tr><td valign="top" align="right">Contact concours :</td><td><a href="http://www.teste.be/contact.html">Page de contact</a></td></tr> 
    <tr><td valign="top" align="right">Votre nombre est de :</td><td><?php echo $_POST['choix-concours']; ?></td></tr> 
    </table> 
    </h4> 
    </font> 
    </body> 
    </html>


    Je compte ajouter une validation en plus avant l'envoi du nombre choisi.

    Où dois-je mettre le code que tu m'a envoyé? car j'ai tester dans "Votre nonbre est de :" Mais j'ai une erreur sur le code :s
    0
    1. Luxerails Messages postés 160 Date d'inscription   Statut Membre Dernière intervention   41
       
      Quel est l'erreur ? Dans le code j'ai volontairement oublié la balise fermante ?> mais il faut la mettre.
      0
    2. rolly41 Messages postés 281 Statut Membre 1
       
      Voila, j'ai trouvé un code parfait. Si la valeur dépasse 200, une valeur aléatoire va être affichée :

      <html>   
      <head>   
      </head>   
      <body>   
      <font align="center">   
      <h4>   
      <table align="center" border="0">   
      <tr><td valign="top" align="right">Date d'ouverture du concours :</td><td>21/08/2011</td></tr>   
      <tr><td valign="top" align="right">Date de fin de participation :</td><td>28/08/2011</td></tr>   
      <tr><td valign="top" align="right">Date du tirage :</td><td>29/08/2011</td></tr>   
      <tr><td valign="top" align="right">Gain :</td><td>5.000 euros</td></tr>   
      <tr><td valign="top" align="right">Contact concours :</td><td><a href="http://www.teste.be/contact.html">Page de contact</a></td></tr>   
      <tr><td valign="top" align="right">Votre nombre est de :</td><td><?php
      if ($_POST["choix"] <= "200") 
      {
      	echo $_POST["choix"] ;
      } 
      else 
      {
          echo '<script language="JavaScript"><!--
         function alea(a,b) {
            return Math.floor(Math.random()*(b-a+1))+a
         }
      
         for(i=1;i<2;i++)
            document.write(alea(1,200)+" ")
      //--></script>';
      }
      ?></td></tr>   
      </table>   
      </h4>   
      </font>   
      </body>   
      </html> 
      0
  3. Fallentree Messages postés 2445 Statut Membre 210
     
    avec l evenement onchange de ton input?
    Apres tu testes su ton input est une numeric
    Dans le cas contraire une alert();
    0
  4. Fallentree Messages postés 2445 Statut Membre 210
     
    voila un code qui reprendra peut etre a ta question :
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    
    <html>
    
    <head>
    <title>Sans Titre</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <script type="text/javascript">
    function test(value) {
    if (parseInt(value)==value) alert ('ok'); else alert('pas bon');
    }
    </script>
    </head>
    <body bgcolor="#FFFFFF">
     <input type="text" name="to" size="20" onchange="test(this.value);" />
    
    <input type="submit"  value="cliquer pour declencher onchange" />
    <hr />
    </body>
    </html>
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. magicshark Messages postés 445 Statut Membre 13
     
    && value <201) // a rajouter dans le if par exemple ou refaire un if pour personnaliser les alert
    0