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

Windows Discussion :

ne valider un formulaire qu'aprés clic sur le buton submit


Sujet :

Windows

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut ne valider un formulaire qu'aprés clic sur le buton submit
    Bonjour

    J’ai besoin de votre aide car je suis bloqué avec mon script et j’arrive pas a avancer
    Voici mon problème :
    J’ai un scripte qui insère les données dans une base mysql à partir d’un formulaire web, mais mon problème est que l’insertion se fait dés que j’appelle le formulaire à travers son lien et la base effectue un enregistrement vide pourtant moi j’aimerais que l’enregistrement ne se fasse que si je clique sur le boutton submit aprés avoir remplis mon formulaire
    Si quelqu’un a une idée peut il m’aider en modifiant mon code suivant :

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <?
    error_reporting(E_ALL ^E_NOTICE);

    // On insére dans des variables les coordonnées de votre compte //
    // qui permettront l'insertion dans la base //
    $sql_serveur="localhost";
    $sql_user="root";
    $sql_passwd="";
    $sql_bdd="incidence";

    // on lance la requete de connection à la base
    $connect = mysql_connect($sql_serveur,$sql_user,$sql_passwd);

    // on verifie que la connection à réussie
    if(!$connect)
    {echo "Connection impossible vérifiez vos coordonnées de connection !!!";exit;}

    // on selectionne la base de donnée ou se trouve votre table "membreé

    mysql_select_db("incidence");

    // votre requete d'insertion
    $ref=$_POST['ref'];
    $nom=$_POST['nom'];
    $prenom=$_POST['prenom'];
    $fonction=$_POST['fonction'];
    $type=$_POST['type'];
    $assignation=$_POST['assignation'];
    $responsable=$_POST['responsable'];
    $acteur=$_POST['acteur'];
    $date=$_POST['date'];
    $description=$_POST['description'];
    ////////Formatage de la date
    $d=explode("/",$date);
    $date=$d[2]."/".$d[1]."/".$d[0];
    ///////////////
    $re=mysql_query("select * from demandes");
    while($tab=mysql_fetch_array($re))
    {
    $h=$tab[10];
    }
    $sequence=$h + 1;
    $ref="REF".$sequence."_".date("dmy");
    $sql="INSERT INTO demandes (ref, nom, prenom, fonction, type,assignation,responsable,acteur,date,description)";
    $sql.=" VALUES ('$ref', '$nom', '$prenom', '$fonction', '$type', '$assignation', '$responsable', '$acteur','$date', '$description')";
    //$insertion=
    mysql_query("$sql", $connect);

    // fermeture de la connection
    mysql_close($connect);
    echo "<center><h3>L'insertion s'est déroulée avec succés !!!</h3></center>";
    ?>

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut

    C'est du développement Web, ça...
    Ça n'a rien à faire dans le forum Windows...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    par contre , il n y a aucun formulaire dans ton code (tu l as peut etre pas mis) , et il manque une condition pour executer ton code :


    //tu cree un champs cache 'Submit' qui envoi 1 quand on valide le formulaire puis :
    if ($_POST['submit']==1)
    {
    //Tout le code que tu as mis
    }
    Sinon :

    - le code de traitement des données se fait a chaques fois que tu arrive sur cette page
    - effectivement il insere des données vides car le formulaire n etant pas validé les '$_POST' ne sont pas renseignés !

    Voili voilou , au boulot !
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  4. #4
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut validation du formulaire
    Merçi de votre réponse mais j'ai mis ce que vous m'avez demandez, ça ne marche toujours pas.
    je vous envois le code complet que vous y jeter un coup d'oeil.

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <?
    error_reporting(E_ALL ^E_NOTICE);
    if($_POST['submit']==1)
    {
    // On insére dans des variables les coordonnées de votre compte //
    // qui permettront l'insertion dans la base //
    $sql_serveur="localhost";
    $sql_user="root";
    $sql_passwd="";
    $sql_bdd="incidence";

    // on lance la requete de connection à la base
    $connect = mysql_connect($sql_serveur,$sql_user,$sql_passwd);

    // on verifie que la connection à réussie
    if(!$connect)
    {echo "Connection impossible vérifiez vos coordonnées de connection !!!";exit;}

    // on selectionne la base de donnée ou se trouve votre table "membreé
    mysql_select_db("incidence");

    // votre requete d'insertion

    $ref=$_POST['ref'];
    $nom=$_POST['nom'];
    $prenom=$_POST['prenom'];
    $fonction=$_POST['fonction'];
    $type=$_POST['type'];
    $assignation=$_POST['assignation'];
    $responsable=$_POST['responsable'];
    $acteur=$_POST['acteur'];
    $date=$_POST['date'];
    $description=$_POST['description'];
    ////////Formatage de la date
    $d=explode("/",$date);
    $date=$d[2]."/".$d[1]."/".$d[0];
    ///////////////
    $re=mysql_query("select * from demandes");
    while($tab=mysql_fetch_array($re))
    {
    $h=$tab[10];
    }
    $sequence=$h + 1;
    $ref="REF".$sequence."_".date("dmy");
    $sql="INSERT INTO demandes (ref, nom, prenom, fonction, type,assignation,responsable,acteur,date,description)";
    $sql.=" VALUES ('$ref', '$nom', '$prenom', '$fonction', '$type', '$assignation', '$responsable', '$acteur','$date', '$description')";

    mysql_query("$sql", $connect);

    // fermeture de la connection
    mysql_close($connect);
    echo "<center><h3>L'insertion s'est déroulée avec succés !!!</h3></center>";
    }
    ?>
    <html>
    <head>
    <title>Document sans titre</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
    <form action="" method="post" name="frm_demande" id="frm_demande">
    <div align="center"></div>
    <div align="center">
    <table width="60%" border="0" cellspacing="0" cellpadding="3">
    <tr>
    <td bgcolor="#0000FF"><div align="center"><strong>Formuler Demande </strong></div></td>
    </tr>
    </table>
    </div>
    <table width="60%" border="0" align="center" cellpadding="3" cellspacing="0" bgcolor="#FFFFCC">
    <tr>
    <td width="36%"><div align="left"><strong> R&eacute;f&eacute;rence</strong></div></td>
    <td width="64%"><!--input name="ref" type="text" id="ref"-->
    <?
    echo $ref;
    ?>
    </td>
    </tr>
    <tr>
    <td><strong>Nom</strong></td>
    <td><input name="nom" type="text" id="nom"></td>
    </tr>
    <tr>
    <td><strong>Pr&eacute;nom</strong></td>
    <td><input name="prenom" type="text" id="prenom"></td>
    </tr>
    <tr>
    <td><strong>Fonction</strong></td>
    <td><input name="fonction" type="text" id="fonction"></td>
    </tr>
    <tr>
    <td><strong>Type Demande </strong></td>
    <td><select name="type" id="type">
    <option>Selectionnez</option>
    <option>Incident Technique</option>
    <option>Info et T&eacute;l&eacute;com</option>
    <option>Demande d'achats</option>
    <option>Demande de cong&eacute;</option>
    <option>Demande d'autorisation d'abscence</option>
    <option>Demande de vehicule(sans/et chauffeur)</option>
    <option>Demande de formation</option>
    <option>Demande de pr&ecirc;t interne</option>
    <option>Demande de paiement fournisseur</option>
    <option>Remboursement</option>
    </select></td>
    </tr>
    <tr>
    <td><strong>Assignation Demande </strong></td>
    <td><input name="assignation" type="text" id="assignation"></td>
    </tr>
    <tr>
    <td><strong>Responsable Demande </strong></td>
    <td><input name="responsable" type="text" id="responsable"></td>
    </tr>
    <tr>
    <td><strong>Acteur</strong></td>
    <td><select name="acteur" id="acteur">
    <option>Selectionnez</option>
    <option>interne</option>
    <option>externe</option>
    </select></td>
    </tr>
    <tr>
    <td><strong>Date Demande </strong></td>
    <td><input name="date" type="text" id="date"></td>
    </tr>
    <tr>
    <td><strong>Description Demande</strong></td>
    <td><textarea name="description" id="description"></textarea></td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td><input name="submit" type="submit" id="submit" value="Envoyer">
    <input name="submit2" type="reset" id="submit2" value="ANNULER"></td></tr>
    </table>
    <div align="left"></div>
    </form>
    </body>
    </html>

  5. #5
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    il manque le champs caché cité dans mon premier message sinon $submit ça sert a rien :

    <input type="hidden" name="submit" value=1>

    mais comme submit est deja pris on va mettre 'envoyer' :

    <input type="hidden" name="envoyer" value=1>

    et changer if($_POST['submit']==1) en if($_POST['envoyer']==1)
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/02/2014, 10h53
  2. Formulaire, action "submit" directe après clic sur un bouton radio
    Par eLynx dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/10/2009, 19h29
  3. [MySQL] Comment empêcher le renvoi d'un formulaire après clic sur rafraichir
    Par pcdj dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 18/01/2007, 23h42
  4. [MySQL] validation aprés clic sur buton submit
    Par bwatex dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/11/2006, 14h50
  5. Réponses: 6
    Dernier message: 23/05/2006, 15h12

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