Partage

vérifier qu'un chiffre est compris dans un intervalle

Le 2 septembre 2010 à 21:44:26

coucou
j'ai réalisé un formulaire est j'ai un soucis pour tester que le classement est compri entre 1000 et 2850, je verifie bien si le champ classement est vide et si je saisi du texte les messages s'affiche correctement par contre si je verifie que je suis bien dans l'intervalle aucun message s'affiche
le formulaire est validé directement

voila mon code
<?php
	session_start();
 include "Include/entete.php"; 
 include "Include/menuadmin.php";
 include "Include/connexion.php";

?>
   


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >

   <head>
       <title>Calendrier</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	   <link rel="stylesheet" media="screen" type="text/css" title="Design" href="feuille.css" />
	 <script language="JavaScript">

<!--
//PLF- http://www.jejavascript.net/

function valider(ecrire) {
var form_err = " ";

var nume=document.getElementById("Classement");

 if(document.ecrire.Nom.value == "")  {
   alert("Veuillez saisir le nom du joueur à inscrire ");
   document.ecrire.Nom.focus();
   return false;
  }
 
 if(document.ecrire.Prenom.value == "")  {
   alert("Veuillez saisir le prénom du joueur à inscrire ");
   document.ecrire.Prenom.focus();
   return false;
  }

  
 if(document.ecrire.Adresse.value == "")  {
   alert("Veuillez saisir l'adresse du joueur à inscrire ");
   document.ecrire.Adresse.focus();
   return false;
  }
  
 if(document.ecrire.Classement.value == "")  {
   alert("Veuillez saisir le classement du joueur à inscrire ");
   document.ecrire.Classement.focus();
   return false;
  }
  else if(document.ecrire.Classement.value*0 !=0) 
        {
		alert( "Veuillez saisir un nombre ");
		return false;
		}
  
  else if(nume.value < 4)
	    {
	    alert("Veuillez saisir un classement supérieur à 4 ");
		return false;
        }
  else if(nume.value > 9)
        {
        alert("Veuillez saisir un classement inférieur à 9");
		return false;
        }
  
  
  
  
  

//verif form_err
if ( form_err != " ") {
alert(form_err);
return false;
}
alert("Le formulaire a été envoyé ");
return true
}
//-->

</script>
</head>


   <body>




<div id="corps"> 

<br/>
<h3><p align="center">Créer un joueur</p></h3>
<form method="POST" action="admin_creerjoueur.php" name="ecrire" onSubmit="return valider();">
<table border="0" align="center" cellspacing="2" cellpadding="2">
    

	
	
    <tr align="center">
      <td>Nom</td>
      <td><input type="text" name="Nom"></td>
    </tr>
	
    <tr align="center">
      <td>Prenom</td>
      <td><input type="text" name="Prenom"></td>
    </tr>
	
    <tr align="center">
      <td>Adresse</td>
      <td><input type="text" name="Adresse"></td>
    </tr>
	
	
    <tr align="center">
      <td>Classement</td>
      <td><input type="text" name="Classement"></td>
    </tr>
	
	
    <tr align="center">
      <td colspan="2"><input type=submit value="Créer un joueur" name="submit" >
		  <input type="reset" value="Effacer"></td>
    </tr>
  </table>
<?php


 
$nom = (isset($_POST['Nom'])) ? $_POST['Nom'] : '';
$prenom = (isset($_POST['Prenom'])) ? $_POST['Prenom'] : '';
$adresse = (isset($_POST['Adresse'])) ? $_POST['Adresse'] : '';
$classement = (isset($_POST['Classement'])) ? $_POST['Classement'] : '';


if($nom!="" && $prenom!="" && $adresse!="" && $classement!="")
	{
  $query= "INSERT INTO joueur VALUES ( NULL,'$nom', '$prenom', '$adresse', '$classement') " ;
  $result=mysql_query($query) or die ("Exécution de la requete impossible");
 }  
?>
  </form>
</div>
<?php
mysql_close($Flag1); 
?>

que me conseillez vous

Publicité
Le 2 septembre 2010 à 21:44:26
Le 2 septembre 2010 à 23:02:16

Ton champ Classement contient peut-être un nombre mais il est stocké sous forme de texte donc pour tes tests il faut faire un parseInt(document.ecrire.Classement.value) qui va te retourner le nombre.
Et ta ligne 52 tu es sûr qu'elle est bonne ? j'ai jamais vu faire comme sa pour tester si un champ est rmplis je doute un peu...
Le 2 septembre 2010 à 23:05:57

Citation

Ton champ Classement contient peut-être un nombre mais il est stocké sous forme de texte donc pour tes tests il faut faire un parseInt(document.ecrire.Classement.value) qui va te retourner le nombre.


je met cela a quel endroit ?

sinon pour ta deuxième remarque cela permet de verifier que l'on a saisi du texte alors que l'on souhaite des chiffres
Le 2 septembre 2010 à 23:25:26

Tu peux par exemple remplacer ta ligne 26 par
var nume = parseInt(document.getElementById("Classement"));


donc nume sera un nombre et tu peux enlever nume.value pour laisser seulement nume ;)
Le 2 septembre 2010 à 23:37:53

voici ma modif

<?php
	session_start();
 include "Include/entete.php"; 
 include "Include/menuadmin.php";
 include "Include/connexion.php";

?>
   


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >

   <head>
       <title>Calendrier</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	   <link rel="stylesheet" media="screen" type="text/css" title="Design" href="feuille.css" />
	 <script language="JavaScript">

<!--
//PLF- http://www.jejavascript.net/

function valider(ecrire) {
var form_err = " ";

var nume = parseInt(document.getElementById("Classement"));

 if(document.ecrire.Nom.value == "")  {
   alert("Veuillez saisir le nom du joueur à inscrire ");
   document.ecrire.Nom.focus();
   return false;
  }
 
 if(document.ecrire.Prenom.value == "")  {
   alert("Veuillez saisir le prénom du joueur à inscrire ");
   document.ecrire.Prenom.focus();
   return false;
  }

  
 if(document.ecrire.Adresse.value == "")  {
   alert("Veuillez saisir l'adresse du joueur à inscrire ");
   document.ecrire.Adresse.focus();
   return false;
  }
  
 if(document.ecrire.Classement.value == "")  {
   alert("Veuillez saisir le classement du joueur à inscrire ");
   document.ecrire.Classement.focus();
   return false;
  }
  else if(document.ecrire.Classement.value*0 !=0) 
        {
		alert( "Veuillez saisir un nombre ");
		return false;
		}
  
  else if(nume< 4)
	    {
	    alert("Veuillez saisir un classement supérieur à 4 ");
		return false;
        }
  else if(nume> 9)
        {
        alert("Veuillez saisir un classement inférieur à 9");
		return false;
        }
  
  
  
  
  

//verif form_err
if ( form_err != " ") {
alert(form_err);
return false;
}
alert("Le formulaire a été envoyé ");
return true
}
//-->

</script>
</head>


   <body>




<div id="corps"> 

<br/>
<h3><p align="center">Créer un joueur</p></h3>
<form method="POST" action="admin_creerjoueur.php" name="ecrire" onSubmit="return valider();">
<table border="0" align="center" cellspacing="2" cellpadding="2">
    

	
	
    <tr align="center">
      <td>Nom</td>
      <td><input type="text" name="Nom"></td>
    </tr>
	
    <tr align="center">
      <td>Prenom</td>
      <td><input type="text" name="Prenom"></td>
    </tr>
	
    <tr align="center">
      <td>Adresse</td>
      <td><input type="text" name="Adresse"></td>
    </tr>
	
	
    <tr align="center">
      <td>Classement</td>
      <td><input type="text" name="Classement"></td>
    </tr>
	
	
    <tr align="center">
      <td colspan="2"><input type=submit value="Créer un joueur" name="submit" >
		  <input type="reset" value="Effacer"></td>
    </tr>
  </table>
<?php


 
$nom = (isset($_POST['Nom'])) ? $_POST['Nom'] : '';
$prenom = (isset($_POST['Prenom'])) ? $_POST['Prenom'] : '';
$adresse = (isset($_POST['Adresse'])) ? $_POST['Adresse'] : '';
$classement = (isset($_POST['Classement'])) ? $_POST['Classement'] : '';


if($nom!="" && $prenom!="" && $adresse!="" && $classement!="")
	{
  $query= "INSERT INTO joueur VALUES ( NULL,'$nom', '$prenom', '$adresse', '$classement') " ;
  $result=mysql_query($query) or die ("Exécution de la requete impossible");
 }  
?>
  </form>
</div>
<?php
mysql_close($Flag1); 
?>



le formulaire a ete envoyé sans que l'intervalle du classement soit verifié
Le 2 septembre 2010 à 23:58:37

Oui pour ça il faut que tu remplaces le type de ton bouton submit par buton (car sinon ton navigateur enverra ton form coûte que coûte) et à la fin de ta fonction (avant return true;) tu fais document.ecrire.submit() pour l'envoyer :)
Le 3 septembre 2010 à 0:15:00

voila ce que j'ai fait
<?php
	session_start();
 include "Include/entete.php"; 
 include "Include/menuadmin.php";
 include "Include/connexion.php";

?>
   


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >

   <head>
       <title>Calendrier</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	   <link rel="stylesheet" media="screen" type="text/css" title="Design" href="feuille.css" />
	 <script language="JavaScript">

<!--
//PLF- http://www.jejavascript.net/

function valider(ecrire) {
var form_err = " ";

var nume = parseInt(document.getElementById("Classement"));

 if(document.ecrire.Nom.value == "")  {
   alert("Veuillez saisir le nom du joueur à inscrire ");
   document.ecrire.Nom.focus();
   return false;
  }
 
 if(document.ecrire.Prenom.value == "")  {
   alert("Veuillez saisir le prénom du joueur à inscrire ");
   document.ecrire.Prenom.focus();
   return false;
  }

  
 if(document.ecrire.Adresse.value == "")  {
   alert("Veuillez saisir l'adresse du joueur à inscrire ");
   document.ecrire.Adresse.focus();
   return false;
  }
  
 if(document.ecrire.Classement.value == "")  {
   alert("Veuillez saisir le classement du joueur à inscrire ");
   document.ecrire.Classement.focus();
   return false;
  }
  else if(document.ecrire.Classement.value*0 !=0) 
        {
		alert( "Veuillez saisir un nombre ");
		return false;
		}
  
  else if(nume< 4)
	    {
	    alert("Veuillez saisir un classement supérieur à 4 ");
		return false;
        }
  else if(nume> 9)
        {
        alert("Veuillez saisir un classement inférieur à 9");
		return false;
        }
  
  
 

//verif form_err
if ( form_err != " ") {
alert(form_err);
return false;
}
alert("Le formulaire a été envoyé ");
document.ecrire.submit() 
return true
}
//-->

</script>
</head>


   <body>




<div id="corps"> 

<br/>
<h3><p align="center">Créer un joueur</p></h3>
<form method="POST" action="admin_creerjoueur.php" name="ecrire" onSubmit="return valider();">
<table border="0" align="center" cellspacing="2" cellpadding="2">
    

	
	
    <tr align="center">
      <td>Nom</td>
      <td><input type="text" name="Nom"></td>
    </tr>
	
    <tr align="center">
      <td>Prenom</td>
      <td><input type="text" name="Prenom"></td>
    </tr>
	
    <tr align="center">
      <td>Adresse</td>
      <td><input type="text" name="Adresse"></td>
    </tr>
	
	
    <tr align="center">
      <td>Classement</td>
      <td><input type="text" name="Classement"></td>
    </tr>
	
	
    <tr align="center">
      <td colspan="2"><input type=buton value="Créer un joueur" name="submit" >
		  <input type="reset" value="Effacer"></td>
    </tr>
  </table>
<?php


 
$nom = (isset($_POST['Nom'])) ? $_POST['Nom'] : '';
$prenom = (isset($_POST['Prenom'])) ? $_POST['Prenom'] : '';
$adresse = (isset($_POST['Adresse'])) ? $_POST['Adresse'] : '';
$classement = (isset($_POST['Classement'])) ? $_POST['Classement'] : '';


if($nom!="" && $prenom!="" && $adresse!="" && $classement!="")
	{
  $query= "INSERT INTO joueur VALUES ( NULL,'$nom', '$prenom', '$adresse', '$classement') " ;
  $result=mysql_query($query) or die ("Exécution de la requete impossible");
 }  
?>
  </form>
</div>
<?php
mysql_close($Flag1); 
?>


mon bouton est désactivé, je ne peut plus cliquer dessus
Le 3 septembre 2010 à 0:41:18

rajoute des guillements autour de buton :)

vérifier qu'un chiffre est compris dans un intervalle

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown