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

Langage PHP Discussion :

[PHP-JS] Champs obligatoire a saisir


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2006
    Messages : 304
    Points : 77
    Points
    77
    Par défaut [PHP-JS] Champs obligatoire a saisir
    J'ai crée un formulaire et je vx tester si les champ Code_ouvrage et Titre sont remplis qu'est ce que je dois faire et ou je px inserer mon test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    <HTML> 
    <HEAD> 
    <TITLE>Formulaire D'ajout</TITLE> 
    </HEAD> 
     
    <BODY> 
    <P ALIGN="CENTER"><FONT FACE="Arial" SIZE=5 color=blue> 
     </FONT></P> 
    <FONT FACE="Arial"> 
     <? 
       if (mysql_connect("localhost","root","")>0)
    echo"connexion réussie";
    else echo "Connexion impossible";
    if(mysql_select_db("Biblio")==true) 
    echo "<br>Selection de la base <br> ";
    else "selection impossible ";
     
     $requete = "SELECT * FROM Ouvrage";
     $result =mysql_query($requete);
    ?>
    <font color=blue><h3 align=center><u>Ajout d'un enregistrement ouvrage !</h3></u></font>
    <?$num = mysql_num_rows($result); 
       echo "Ajout du ".($num+1)."° enregistrement<BR><BR>\n"; 
     
     ?> 
    <FORM ACTION="ajoute.php" method="post">
     
    <table align=center>
        <tr><td><b>Code de l'ouvrage : </b></td><td><INPUT TYPE="TEXT" NAME="Code_ouvrage"><BR></td></tr>
        <tr><td><b>Titre :</b> </td><td><INPUT TYPE="TEXT" NAME="Titre"><BR> </td></tr>
        <tr><td><b>Discipline :</b> </td><td><INPUT TYPE="TEXT" NAME="Discipline"><BR></td></tr>
        <tr><td><b>Auteur principal :</b></td><td> <INPUT TYPE="TEXT" NAME="Auteur_principal"><BR></td></tr>
        <tr><td><b>Prix d'achat :</td></b><td> <INPUT TYPE="TEXT" NAME="Prix_achat"><BR></td></tr>
        <tr><td><b>Date achat : </td></b><td><INPUT TYPE="TEXT" NAME="Date_achat"><BR></td></tr>
        <tr><td><b>Affectation : </td></b><td><INPUT TYPE="TEXT" NAME="Affectation"><BR></td></tr>  
        <tr><td></td><td><INPUT TYPE="SUBMIT" name="val" VALUE="Valider"></td></tr> 
    </table>
     
     
    </FORM> 
     
    </FONT> 
    </BODY> 
    </HTML>

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    2 possibilité, voir 3 car tu peux combiner les 2 :
    - faire le test en javascript et interdire de cliquer sur le bouton valider tant que le champ n'est pas rempli (auquel cas, c'est pas le bon forum).

    - tester dans la page que tu appels que tous les champs sont bien rensignés (fonction isset($_POST['ma_variable']) avant d'effectuer ton traitement, et rappeler ton formulaire si c'est pas le cas.

    Pour ma part, je met toujours mon traitement et mon formulaire dans la meme page, et j'affiche l'un ou l'autre (le formulaire ou le resultat du traitement) en fonction du remplissage du formulaire (formulaire bien rempl -> traitement et affichage du resultat, formulaire mal/pas rempli -> affichage du formulaire avec eventuellement les valeurs deja saisies rensignées par defaut).

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 154
    Points : 144
    Points
    144
    Par défaut
    tu peu inseré un premier test en javascript lors du clic sur le bouton pour etre sur qu'il sont rempli mais il faut absolument retester en php une fois le formulaire soumit ce qui a été rentré pour éviter tout probleme d'injection.

    au niveau de php tu peu utiliser les fonction htmlentities et mysql-real-escape-string

    edit : grilled ^^

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2006
    Messages : 304
    Points : 77
    Points
    77
    Par défaut Champs obligatoire a saisir
    le test doit etre fait avec php mais ou je dois mettre mon test

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    Dans la page qui reçoit le résultat de ton formulaire !

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 154
    Points : 144
    Points
    144
    Par défaut
    avant d'effectuer ta requete , tu test t variable que tu récupere et si elle sont pas bonne tu renvoi sur le formulaire.

    edit : regrilled decidement ^^

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2006
    Messages : 304
    Points : 77
    Points
    77
    Par défaut Champs obligatoire a saisir
    Expliquer d'avantage sv^p

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    bon...

    on va faire avec MA méthode, c-a-d une page unique pour traitement + formulaire :

    index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    if(isset($_POST['ma_variable1']) && isset($_POST['ma_variable2']) ) // ceci est le test que tu demande !
    {
         echo 'Vous avez bien rempli les 2 champs avec les valeurs '.$_POST['ma_variable1'].' et '.$_POST['ma_variable2'].' !<br>';
    }
    else // sinon, c'est que les 2 champs ne sont pas remplis
    {
        echo '<form method="POST" action="./index.php">';
        echo '<input name="ma_variable1" value="'.$_POST['ma_variable1'].'" type="text"><br>';
        echo '<input name="ma_variable2" value="'.$_POST['ma_variable2'].'" type="text"><br>';
        echo '<input type="submit" value="Envoyer"></form>';
    }
    ?>
    A la faute de frappe près, tu dois pouvoir copier/coller ca direct dans le fichier index.php, et ça devrait marcher, donc t'inspirer pour la suite...

  9. #9
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2006
    Messages : 304
    Points : 77
    Points
    77
    Par défaut Champs obligatoire a saisir
    mon fichier s'appelle formulaire.php et index c le meme fichier ou un autre de plus j'ai deja créer un formulaire ds men fichier php formulaire

  10. #10
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2006
    Messages : 304
    Points : 77
    Points
    77
    Par défaut Liste déroulante et affichage d'autre page
    j'ai creer une liste qui est le resultat d'une requete qui contirnt les noms des autreurs et je vx lorsque je clique sur chaque auteur une page qui s'affiche contenant ses ouvrages !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <html>
    <body>
    <FORM >
    <SELECT name="liste">
    <?
    mysql_connect("localhost", "root", "")or die ("Impossible de se connecter");
    mysql_select_db ("Biblio")or die ("Impossible d'accéder à la base de données");
     
    $requete="SELECT Code_auteur,Nom_auteur FROM Auteur";
    $result=mysql_query($requete);
    while ($ligne=mysql_fetch_array($result))
     {
    echo '<OPTION VALUE="'.$ligne["Code_auteur"].'">'.$ligne["Nom_auteur"].'</OPTION>';
    }
    ?>
    </SELECT>
    <INPUT TYPE=submit name="val" VALUE="Valider">
    </FORM>
     
    </body>
    </html>
    aidez moi !

  11. #11
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    T'y met pas beacoup du tien là non pus...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <html>
    <body>
    <FORM method="POST" action="affiche_liste.php">
    <SELECT name="liste">
    <?
    mysql_connect("localhost", "root", "")or die ("Impossible de se connecter");
    mysql_select_db ("Biblio")or die ("Impossible d'accéder à la base de données");
     
    $requete="SELECT Code_auteur,Nom_auteur FROM Auteur";
    $result=mysql_query($requete);
     
    while ($ligne=mysql_fetch_array($result))
     {
    echo '<OPTION VALUE="'.$ligne["Code_auteur"].'">'.$ligne["Nom_auteur"].'</OPTION>';
    }
    ?>
    </SELECT>
    <INPUT TYPE=submit name="val" VALUE="Valider">
    </FORM>
     
    </body>
    </html>

    puis tu créé la page

    affiche_liste.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    mysql_connect("localhost", "root", "")or die ("Impossible de se connecter");
    mysql_select_db ("Biblio")or die ("Impossible d'accéder à la base de données");
     
    $requete="SELECT * FROM ouvrage where auteur_ouvrage = ".$_POST['Code_auteur'];
    $result=mysql_query($requete);
    while($res = mysql_fetch_array($result))
          print_r($res);
    ?>

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Février 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 154
    Points : 144
    Points
    144
    Par défaut
    déja il faut que tu mettes un action dans ta form et une methode d'envoi des donnée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <FORM action="lapage avec le traitement" method="POST" (ou GET)>
    ensuite dans ta page de traintement tu recupere ton code auteur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_GET['liste'] ou $_POST['liste']
    suivant la methode de passage des varibale.

    tu construit ta requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $query = "SELECT * FROM ta table WHERE tonchamp =" .$_POST['liste'] ;
     
    //et tu l'excute
    $resultat = mysql_query($query) ;
    //tu parcours t resultats
    while ($ligne = mysql_fetch_array($resultat){
      echo $ligne['tonchamp'] ;
    }
    voila en gros apres tu peu faire des test pour savoir si t fonction s'execute bien etc...

    edit : trop tard

  13. #13
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2006
    Messages : 304
    Points : 77
    Points
    77
    Par défaut Champs obligatoire a saisir
    oui j'ai fait tous ce que vous avez dit mais sans resultat !
    f.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <html>
    <body>
    <FORM >
    <SELECT method="POST" action="affiche_liste.php">
    <?
    mysql_connect("localhost", "root", "")or die ("Impossible de se connecter");
    mysql_select_db ("Biblio")or die ("Impossible d'accéder à la base de données");
     
    $requete="SELECT Nom_auteur FROM Auteur";
    $result=mysql_query($requete);
    while ($ligne=mysql_fetch_array($result))
     {
    echo '<OPTION VALUE="'.$ligne["Code_auteur"].'">'.$ligne["Nom_auteur"].'</OPTION>';
    }
    ?>
    </SELECT>
    <INPUT TYPE=submit name="val" VALUE="Valider">
    </FORM>
     
    </body>
    </html>
    affiche_liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <html>
    <body>
    <?
    mysql_connect("localhost", "root", "")or die ("Impossible de se connecter");
    mysql_select_db ("biblio")or die ("Impossible d'accéder à la base de données");
     
    $requete="SELECT Titre FROM Ouvrage WHERE Auteur_principal = "$_POST['Nom_auteur']"";
    $result=mysql_query($requete);
    while($res = mysql_fetch_array($result))
           echo $res["Titre"];
     
    ?>
     
    </body>
    </html>

    Help !

  14. #14
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    et ça dit quoi ?
    si ça dit rien, tu rajoutes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<font color="red"><b>'.$requete.'</b><br>'.mysql_error().'</font><br>';
    juste après

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $result=mysql_query($requete);
    et tu nous dit ce que ça affiche en rouge quand tu tests...

    et si ça n'affiche rien en rouge, alors il faut etre plus précis sur ce qui se passe (ou ce qio se passe pas)...

  15. #15
    Membre confirmé Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut
    Citation Envoyé par gloubi
    T'y met pas beacoup du tien là non pus...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <!-- //-->
    <INPUT TYPE=submit name="val" VALUE="Valider">
    </FORM>
     
    </body>
    </html>


    puis tu créé la page

    affiche_liste.php
    <!--//-->
    Je pense qu'il faut implémenter un script javascript avec une fonction validate() qui teste le formulaire et ses éléments.

  16. #16
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 147
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par Maria1505
    J'ai crée un formulaire et je vx tester si les champ Code_ouvrage et Titre sont remplis qu'est ce que je dois faire et ou je px inserer mon test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    <HTML> 
    <HEAD> 
    <TITLE>Formulaire D'ajout</TITLE> 
    </HEAD> 
     
    <BODY> 
    <P ALIGN="CENTER"><FONT FACE="Arial" SIZE=5 color=blue> 
     </FONT></P> 
    <FONT FACE="Arial"> 
     <? 
       if (mysql_connect("localhost","root","")>0)
    echo"connexion réussie";
    else echo "Connexion impossible";
    if(mysql_select_db("Biblio")==true) 
    echo "<br>Selection de la base <br> ";
    else "selection impossible ";
     
     $requete = "SELECT * FROM Ouvrage";
     $result =mysql_query($requete);
    ?>
    <font color=blue><h3 align=center><u>Ajout d'un enregistrement ouvrage !</h3></u></font>
    <?$num = mysql_num_rows($result); 
       echo "Ajout du ".($num+1)."° enregistrement<BR><BR>\n"; 
     
     ?> 
    <FORM ACTION="ajoute.php" method="post">
     
    <table align=center>
        <tr><td><b>Code de l'ouvrage : </b></td><td><INPUT TYPE="TEXT" NAME="Code_ouvrage"><BR></td></tr>
        <tr><td><b>Titre :</b> </td><td><INPUT TYPE="TEXT" NAME="Titre"><BR> </td></tr>
        <tr><td><b>Discipline :</b> </td><td><INPUT TYPE="TEXT" NAME="Discipline"><BR></td></tr>
        <tr><td><b>Auteur principal :</b></td><td> <INPUT TYPE="TEXT" NAME="Auteur_principal"><BR></td></tr>
        <tr><td><b>Prix d'achat :</td></b><td> <INPUT TYPE="TEXT" NAME="Prix_achat"><BR></td></tr>
        <tr><td><b>Date achat : </td></b><td><INPUT TYPE="TEXT" NAME="Date_achat"><BR></td></tr>
        <tr><td><b>Affectation : </td></b><td><INPUT TYPE="TEXT" NAME="Affectation"><BR></td></tr>  
        <tr><td></td><td><INPUT TYPE="SUBMIT" name="val" VALUE="Valider"></td></tr> 
    </table>
     
     
    </FORM> 
     
    </FONT> 
    </BODY> 
    </HTML>

    Pour tester si un champs est vide ou pas, j'utilise empty accompagné d'isset éventuellement.

    Peut être y aurait t-il des désavantage à utiliser empty comme je vois personne le proposer avant moi?

  17. #17
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    Je pense qu'il faut implémenter un script javascript avec une fonction validate() qui teste le formulaire et ses éléments.
    C'est parfaitement inutile puisque de toute façon il te faudra faire une vérification PHP après, et compte tenu du niveau de la personne qui essaye de faire ce script, ça vaut p'tet pas le coup de la lancer en plus sur du javascript. De plus, on n'est pas sur le forum javascript !

  18. #18
    Membre confirmé Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut
    eh alors ? ce nest pas la config habituelle?

  19. #19
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2006
    Messages : 304
    Points : 77
    Points
    77
    Par défaut Champs obligatoire a saisir
    Oui j'ai fait le test avec sqlerror mais il me fait pas le lien entre la prmiere page et la deuxieme
    t.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <html>
    <body>
    <FORM >
    <SELECT method="POST" action="affiche_liste.php">
    <?
    mysql_connect("localhost", "root", "")or die ("Impossible de se connecter");
    mysql_select_db ("Biblio")or die ("Impossible d'accéder à la base de données");
     
    $requete="SELECT Nom_auteur FROM Auteur";
    $result=mysql_query($requete);
    echo '<font color="red"><b>'.$requete.'</b><br>'.mysql_error().'</font><br>';
    while ($ligne=mysql_fetch_array($result))
     {
    echo '<OPTION VALUE="'.$ligne["Code_auteur"].'">'.$ligne["Nom_auteur"].'</OPTION>';
    }
    ?>
    </SELECT>
    <INPUT TYPE=submit name="val" VALUE="Valider">
    </FORM>
     
    </body>
    </html>
    liste_affiche.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <html>
    <body>
    <?
    mysql_connect("localhost", "root", "")or die ("Impossible de se connecter");
    mysql_select_db ("biblio")or die ("Impossible d'accéder à la base de données");
     
    $requete="SELECT Titre FROM Ouvrage WHERE Auteur_principal = $_POST['Nom_auteur']";
    $result=mysql_query($requete);
    echo '<font color="red"><b>'.$requete.'</b><br>'.mysql_error().'</font><br>';
    while($res = mysql_fetch_array($result))
     
     echo $res['Titre'];
     
    ?>
     
    </body>
    </html>

  20. #20
    Membre confirmé Avatar de broumbroum
    Profil pro
    Inscrit en
    Août 2006
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 406
    Points : 465
    Points
    465
    Par défaut
    lis ce thread: [Ajax] Submit formulaire

Discussions similaires

  1. forcér les utlisateurs de saisir les champs obligatoires
    Par rafikfareh dans le forum SharePoint
    Réponses: 2
    Dernier message: 26/05/2008, 17h22
  2. Champs obligatoires dans un formulaire
    Par glloq8 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/09/2005, 16h24
  3. Test si champs obligatoires remplis
    Par michaelbob dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/09/2005, 14h20
  4. Champs obligatoires
    Par JustMe dans le forum Bases de données
    Réponses: 15
    Dernier message: 18/11/2004, 20h54

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