Refuser envoi forulaire

Fermé
Utilisateur anonyme - Modifié par jordane45 le 24/02/2015 à 15:14
 Utilisateur anonyme - 26 févr. 2015 à 10:18
Bonjour,
J'ai un problème et je veux vos aides. J'ai une base de données et j'ai crée un formulaire pour insérer des données dans cette dite base. J'ai mis une condition si les champs sont vides ou erronés pas d'insertion. Mais avec mon code je vois le message montrant que les champs sont erronés mais si je vérifie ma BDD je trouve l'action d'insertion a été faite.
Quelqu'un peut m'aider? Voici mon code :
Merci
<!DOCTYPE [/contents/498-html-langage html]>
<html>
<head><title>Enregistrement nouveau</title>
<script type="text/javascript">
        function testeurnom(th){
           var y= document.getElementById(th).value;
           if(y=="" || y==null || !isNaN(y.charAt(0))){
          alert ("Choisissez un nom valide svp!");
          return false;
          
          }
          }
  function testeurnum(nd){
      var x=document.getElementById(nd).value;
       if (x=="" || isNaN(x)) //isNaN: Is Not a Number
        {
        alert("Entrer un nombre svp!");
        return false;
       } 
  }
          
  function afficher()  {
      document.getElementById("affichage").value="afficher";
  }       
   
</script>
</head>
<body>
 <table border="0">
 <h1>Enregistrement nouveau</h1>
 <form name="enfant" action="enfant.php" method="post" >
 <tr><td>No_enregistrement</td>
   <td><input type="text" id="b1" name="num" onBlur="testeurnum(this.id);"/></td>
  </tr>
 <tr><td>Nom</td>
   <td><input type="text" id="b2" name="nom" onBlur="testeurnom(this.id);"/></td>
  </tr>
 <tr><td>Prenom</td>
   <td><input type="text" id="b2" name="pren" onBlur="testeurnom(this.id);"/></td>
  </tr>
 <tr><td>Sexe</td>
    <td><select name="sexe">
    <option value="masculin">Masculin</option>
    <option value="feminin">Feminin</option>
    <option value="autre">Autre</option>
    </select></td>
 </tr>
 <tr><td>Annee_naissance</td>
 <td><select name="naissance">
     <option value="1990">1990</option>
     <option value="1991">1991</option>
     <option value="1992">1992</option>
     <option value="1993">1993</option>
     <option value="1994">1994</option>
     <option value="1995">1995</option>
     <option value="1996">1996</option>
     <option value="1997">1997</option>
     <option value="1998">1998</option>
     <option value="1999">1999</option>
     <option value="2000">2000</option>
     <option value="2001">2001</option>
     <option value="2002">2002</option>
     <option value="2003">2003</option>
     <option value="2004">2004</option>
     <option value="2005">2005</option>
     <option value="2006">2006</option>
     <option value="2007">2007</option>
     <option value="2008">2008</option>
     <option value="2009">2009</option>
     <option value="2010">2010</option>
     <option value="2011">2011</option>
     <option value="2012">2012</option>
     <option value="2013">2013</option>
     <option value="2014">2014</option>
     <option value="2015">2015</option>
     </select></td>
 </tr>
 </table><br>
    <input type="hidden" id="affichage" name="affichage"  value=" " />
    <input type="submit"  value="Enregistrer" onclick="inserer()" />
     <input type="reset"  value="Annuler" />
 
</body>
</html>



<?php
     $con= mysql_connect("localhost","root","");
  if(!$con)
  die('pas connecter :'.mysql_error());
  $selection=mysql_select_db("dbenfant",$con);
  $recuperer=$_POST['affichage'];

 $nom="insert into enfant(No_enregistrement, Nom, Prenom, Sexe, Annee_naissance, Date_enregistrement) 
 values('$_POST[num]','$_POST[nom]','$_POST[pren]','$_POST[sexe]','$_POST[naissance]',Now())";
     $resultat=mysql_query($nom,$con);
     echo "\n";
     if($resultat)
     {
      echo "Enregistrement bien effectué!";
      echo "<p><a href='enfant.html'>Ok</a>"; 
     }else die( 'Insertion impossible:' .mysql_error()); 
   }
        mysql_close($con);      
    ?>



EDIT : Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

2 réponses

jordane45 Messages postés 38365 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 décembre 2024 4 720
Modifié par jordane45 le 24/02/2015 à 15:23
Bonjour,

Tu as fais les tests en JAVASCRIPT ... mais tu ne vérifies rien dans ton PHP....

<?php
//------------------------------------------------------------
//Connexion à la BDD
//(au passage...met la dans un fichier à part que tu auras juste 
// à inclure dans tes pages.....
//------------------------------------------------------------
$con= mysql_connect("localhost","root","");
  if(!$con)  die('pas connecter :'.mysql_error());
  $selection=mysql_select_db("dbenfant",$con);
 
//------------------------------------------------------------
//Récupération des variables 
//------------------------------------------------------------
$recuperer=isset($_POST['affichage'])?$_POST['affichage']:'';
$num = isset($_POST['num'])?$_POST['num']:null;
$nom = isset($_POST['nom'])?$_POST['nom']:null;
$prenom = isset($_POST['pren'])?$_POST['pren']:null;
$sexe = isset($_POST['sexe'])?$_POST['sexe']:'';
$naissance = isset($_POST['naissance'])?$_POST['naissance']:'';

if($num && $nom){
$sql="insert into enfant 
                (No_enregistrement
                , Nom, Prenom
                , Sexe
               , Annee_naissance
               , Date_enregistrement)  
        values('$num'
                 ,'$nom'
                 ,'$prenom'
                 ,'$sexe'
                 ,'$naissance'
                 ,Now())";
     $resultat=mysql_query($sql,$con);
     
     echo "\n";
   if($resultat) {
      echo "Enregistrement bien effectué!";
      echo "<p><a href='enfant.html'>Ok</a>"; 
   }else{
    die( 'Insertion impossible:' .mysql_error()."<br> Requete :<br>".$sql); 
   }
}//fin du IF
        mysql_close($con);      
    ?>



Cordialement,
Jordane
0
Utilisateur anonyme
25 févr. 2015 à 08:46
oh,je voi.merci je teste et je vous tiendrai au courant.
0
Utilisateur anonyme
25 févr. 2015 à 09:26
bonjour 'jordane45', avec ton code ça marche mais ça ne montre pas le message indiquant la cause de l'échec de l'insertion, ça montre seulement une page blanche.Autre chose c'est que j'ai voulu que pour les champs destiné aux text que si on entre les chiffres ça n'insère pas et vice versa pour les champs destinés aux chiffres.Merci
0
jordane45 Messages postés 38365 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 décembre 2024 4 720
25 févr. 2015 à 10:50
Hello,

Testes ça :
<html>
<head><title>Enregistrement nouveau</title>
<script type="text/javascript">
  function testeurnom(th){
   var y= document.getElementById(th).value;
   if(y=="" || y==null || !isNaN(y.charAt(0))){
    alert ("Choisissez un nom valide svp!");
    return false;
    }else{
     return true;
    }
  }
  function testeurnum(nd){
  var x=document.getElementById(nd).value;
   if (x=="" || isNaN(x)) //isNaN: Is Not a Number
    {
      alert("Entrer un nombre svp!");
      return false;
    }else{
     return true;
    }
  }
          
  function afficher()  {
      document.getElementById("affichage").value="afficher";
  }      

  function envoyer(){
  var nom = document.getElementById('non').value;
  var num = document.getElementById('num').value;
  if(testeurnom(nom) && testeurnum(nul)){
   //envoi du formulaire
   document.getElementById("myForm").submit();
  }
  
  
  }  
   
</script>
</head>
<body>
 <table border="0">
 <h1>Enregistrement nouveau</h1>
 <form name="enfant" id="myForm" action="enfant.php" method="post" >
 <tr><td>No_enregistrement</td>
   <td><input type="text" id="num" name="num" onBlur="testeurnum(this.id);"/></td>
  </tr>
 <tr><td>Nom</td>
   <td><input type="text" id="nom" name="nom" onBlur="testeurnom(this.id);"/></td>
  </tr>
 <tr><td>Prenom</td>
   <td><input type="text" id="prenom" name="pren" onBlur="testeurnom(this.id);"/></td>
  </tr>
 <tr><td>Sexe</td>
    <td><select name="sexe">
    <option value="masculin">Masculin</option>
    <option value="feminin">Feminin</option>
    <option value="autre">Autre</option>
    </select></td>
 </tr>
 <tr><td>Annee_naissance</td>
 <td><select name="naissance">
     <option value="1990">1990</option>
     <option value="1991">1991</option>
     <option value="1992">1992</option>
     <option value="1993">1993</option>
     <option value="1994">1994</option>
     <option value="1995">1995</option>
     <option value="1996">1996</option>
     <option value="1997">1997</option>
     <option value="1998">1998</option>
     <option value="1999">1999</option>
     <option value="2000">2000</option>
     <option value="2001">2001</option>
     <option value="2002">2002</option>
     <option value="2003">2003</option>
     <option value="2004">2004</option>
     <option value="2005">2005</option>
     <option value="2006">2006</option>
     <option value="2007">2007</option>
     <option value="2008">2008</option>
     <option value="2009">2009</option>
     <option value="2010">2010</option>
     <option value="2011">2011</option>
     <option value="2012">2012</option>
     <option value="2013">2013</option>
     <option value="2014">2014</option>
     <option value="2015">2015</option>
     </select></td>
 </tr>
 </table><br>
    <input type="hidden" id="affichage" name="affichage"  value=" " />
    <input type="button"  value="Enregistrer" onclick="envoyer()" />
     <input type="reset"  value="Annuler" />
 
</body>
</html>



0
Utilisateur anonyme
25 févr. 2015 à 13:32
Merci encore mais avec ton code si la condition est fausse donc si les champs sont vides ou erronés il n'y pas de réaction en cliquant sur enregistrer.ça serait mieux s'il y a un message indiquant que l'action ne peut être effectuée tant que les champs sont erronées.
0
jordane45 Messages postés 38365 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 décembre 2024 4 720 > Utilisateur anonyme
25 févr. 2015 à 16:15

.ça serait mieux s'il y a un message indiquant que l'action ne peut être effectuée tant que les champs sont erronées.

et bien où est le souci ... il te suffit de le rajouter....

par exemple :
  function envoyer(){
  var nom = document.getElementById('non').value;
  var num = document.getElementById('num').value;
  if(testeurnom(nom) && testeurnum(nul)){
   //envoi du formulaire
   document.getElementById("myForm").submit();
  }else{
  alert("Merci de remplir les champs Nom et Numéro...");
 }
}
0
Utilisateur anonyme > jordane45 Messages postés 38365 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 31 décembre 2024
25 févr. 2015 à 16:23
Merci ca marche.Merci encore pour ton aide.
0
Utilisateur anonyme
26 févr. 2015 à 10:18
Bonjour jordane45,
j'ouvre encore cette discussion car je trouve que le problème n'est pas résolu.Si les champs sont erronés c'est bon ça ne fait rien mais je remarque aussi que si c'est correct ça donne toujours rien.merci
0