Refuser envoi forulaire

Utilisateur anonyme -  
 Utilisateur anonyme -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
 
oh,je voi.merci je teste et je vous tiendrai au courant.
0
Utilisateur anonyme
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Utilisateur anonyme
 

.ç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 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Merci ca marche.Merci encore pour ton aide.
0
Utilisateur anonyme
 
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