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 :

Remplissage de formulaire


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 87
    Points : 50
    Points
    50
    Par défaut Remplissage de formulaire
    Bonjour à tous !

    J'ai un petit souci.

    Voilà, j'ai un formulaire dont voici le code (en résumé) :
    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
     
    <?php
    	if (isset($_POST['numClient']))
    	{
    		$mysql_result = mysql_query("SELECT numClient, nomClient, prenomClient,adresseClient, CP FROM client WHERE EF_Id=".$_POST['numClient']);
    while ($ligne = mysql_fetch_array($mysql_result))
    		{
    		    $Id=$ligne[0];			$Adresse=$ligne[3];
    		    $Nom=$ligne[1];			$CP=$ligne[4];
                        $Prenom=$ligne[2];
    ?>
     
    <form id="Form1" method="post">
    <input="text" name="numClient" value="<?php echo $Id; ?>">numéro client</input><button="submit" action="mapage.php&numClient=<?php echo &Id; ?>">envoyer</submit>
    <input="text" name="Nom" value="<?php echo $Nom; ?>">Nom</input>
    <input="text" name="Prenom" value="<?php echo $Prenom; ?>">Prenom</input>
    <input="text name=adresse" value="<?php echo $Adresse; ?>">Adresse</input>
    <input="text" name="CP" value="<?php echo $CP; ?>">CP</input>
    </form> 
    <?php                  
                   }               
          }
    ?>
    Ce que je souhaite c'est qu'en arrivant sur la page, le formulaire apparaisse vide et que lorsque l'on complète le n° client et qu'on valide, les autres champs viennes se complèter en puisant dans ma base mysql.

    Et mon code est foireux...

    Donc si vous aviez des conseils je suis preneur !
    Merci

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Salut,

    Qu'est-ce qui ne fonctionne pas exactement ? Là c'est trop vague, il faut préciser...

    A première vue pour commencer pour renseigner un champ l'attribut s'appelle value et pas values.
    Il manque aussi un point-virgule après $Prenom=$ligne[2].

  3. #3
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 73
    Points : 77
    Points
    77
    Par défaut
    verifie d'abord le resultat de ta requête en affichant le résultat et tien nous au courant

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 87
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par Amara Voir le message
    Salut,

    Qu'est-ce qui ne fonctionne pas exactement ? Là c'est trop vague, il faut préciser...

    A première vue pour commencer pour renseigner un champ l'attribut s'appelle value et pas values.
    Il manque aussi un point-virgule après $Prenom=$ligne[2].
    Pour les value exact, mais c'est une faute de frappe qui n'est pas présente dans mon code d'origine (suivi d'un copier/coller c'est pour ça qu'elle est partout) pareil pour le point virgule.

    Là le souci c'est que rien ne s'affiche, même pas le formulaire: page blanche.
    Et ce que je veux c'est qu'en arrivant sur ma page mon formulaire apparaisse mais vide. Et qu'ensuite en entrant un n° de client, l'utilisateur valide et voit apparaitre touts les infos du client dans les autres champs.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 87
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par ridick Voir le message
    verifie d'abord le resultat de ta requête en affichant le résultat et tien nous au courant

    Ma requete me renvoie bien des résultats lorsque je l'applique avec un n°client dans le where

  6. #6
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 73
    Points : 77
    Points
    77
    Par défaut
    l'utilisateur doit attendre le chargement de la page sinon tu dois utiliser ajax
    pour la page blanche enleve le formulaire essaie pour voir si ta requête renvoi quelque chose puis verifie la syntaxe dans ton formulaire.
    essaie de diviser le code pour detecter les erreurs et on t'aidera pour corriger

  7. #7
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 73
    Points : 77
    Points
    77
    Par défaut
    avant tout le formulaire ne renvoie a aucune page?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 87
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par ridick Voir le message
    avant tout le formulaire ne renvoie a aucune page?
    Dsl je suis un boulet j'ai oublié de mettre l'action sur mon submit(corrigé), elle y était en revanche dans mon code d'origine.
    J'envoie ma variable $Id dans l'URL de ma page.

    Je viens de voir une erreur : j'ai fait un POST dans mon code php alors que pour récupérer ma variable c'est un GET

    bon ce n'ai pas règlé pour autant mais bon c'est mieux...

  9. #9
    Membre régulier
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 73
    Points : 77
    Points
    77
    Par défaut
    Citation Envoyé par oOBaalberithOo Voir le message
    Dsl je suis un boulet j'ai oublié de mettre l'action sur mon submit(corrigé), elle y était en revanche dans mon code d'origine.
    J'envoie ma variable $Id dans l'URL de ma page.

    Je viens de voir une erreur : j'ai fait un POST dans mon code php alors que pour récupérer ma variable c'est un GET

    bon ce n'ai pas règlé pour autant mais bon c'est mieux...
    bon vas y c'est quoi ton nouveau probleme avec ton nouveau code et ce que ça renvoi?

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 87
    Points : 50
    Points
    50
    Par défaut
    Le truc c'est que maintenant si je lance "mapage.php" il n'y a toujours rien qui s'affiche. En revanche si je lui rajoute mon GET manuellement par exemple "mapage.php&numClient=5001", mon formulaire s'affiche bien mais il n'y a que le champs du n° client qui se rempli et pas les autres champs.

  11. #11
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Citation Envoyé par oOBaalberithOo
    Ma requete me renvoie bien des résultats lorsque je l'applique avec un n°client dans le where
    comment le sais tu ?

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 87
    Points : 50
    Points
    50
    Par défaut
    En l'ayant tester avec un requêteur

  13. #13
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    un requêteur ? en php ?

  14. #14
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Si on se tient à ton code (1er post), tu as une 1ère condition qui fait que s'il y a aucun paramètre $_POST['numClient'], il n'y aura pas de formulaire d'affiché.

    Donc par défaut il n'y a pas de formulaire, donc impossible de saisir au minimum un N° de client.
    Aussi, je remarque que le critère sur la requête se fait apparemment sur un identifiant (champ EF_ID) et non pas le N° de client (champ numClient).


    A mon sens il te faudrait 2 formulaires :
    - Un formulaire avec un seul champ : numClient qui serait une zone de recherche et qui sera tout le temps affiché.

    - Une fois validé (submit) un N° client, et si celui est trouvé dans la BDD, alors le 2ème formulaire sera affiché avec les infos du client.

    De plus, du moins normalement, il n'est pas utile de faire un boucle avec un while, car un N° de client est unique, donc il ne peut avoir qu'1 seul résultat.
    $ligne (que je remplace ci-dessous par $clients) sera un tableau avec toutes les infos du client.

    Dernier petit truc.
    Il vaut mieux indiquer le nom de la page dans le formulaire (action="mapage.php"), et non pas dans le bouton submit.

    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
     
    <?php
    $nombreClient = 0;
    $idClient = null;
    //
    if (isset($_POST['idClient']) && !empty($_POST['idClient'])) {
    	$idClient = mysql_real_escape_string($_POST['idClient']);
    	$mysql_result = mysql_query("SELECT numClient, nomClient, prenomClient, adresseClient, CP FROM client WHERE EF_Id = '".$idClient."'");
    	$nombreClient = mysql_num_rows($mysql_result);
    	$client = mysql_fetch_array($mysql_result);
    }
    ?>
     
    <!-- Zone de recherche -->
    <form name="form_idclient" action="mapage.php" method="post">
    <input type="text" name="idClient" value="<?php echo $idClient; ?>" />
    <input type="submit" value="Rechercher" />
    </form>
     
    <br />
     
    <?php
    if ((int)$nombreClient > 0 && !empty($client)) {
    ?>
    <!-- Information du client -->
    <form id="Form1" name="form_client" action="mapage.php" method="post">
    <input="text" name="numClient" value="<?php echo $client['numClient']; ?>">numéro client</input><button="submit">envoyer</submit>
    <input="text" name="Nom" value="<?php echo $client['nomClient']; ?>">Nom</input>
    <input="text" name="Prenom" value="<?php echo $client['prenomClient']; ?>">Prenom</input>
    <input="text name=adresse" value="<?php echo $client['adresseClient']; ?>">Adresse</input>
    <input="text" name="CP" value="<?php echo $client['CP']; ?>">CP</input>
    </form>
    <?php
    }
    ?>
    En esprérant que cela correspond un peu à ce que tu recherche, il qu'il y a pas trop d'erreurs

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 87
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par Thes32 Voir le message
    un requêteur ? en php ?
    Dans phpmyadmin, j'ai lancé ma requête et elle fonctionne bien



    Citation Envoyé par RunCodePhp Voir le message
    Salut

    Si on se tient à ton code (1er post), tu as une 1ère condition qui fait que s'il y a aucun paramètre $_POST['numClient'], il n'y aura pas de formulaire d'affiché.

    Donc par défaut il n'y a pas de formulaire, donc impossible de saisir au minimum un N° de client.
    Aussi, je remarque que le critère sur la requête se fait apparemment sur un identifiant (champ EF_ID) et non pas le N° de client (champ numClient).


    A mon sens il te faudrait 2 formulaires :
    - Un formulaire avec un seul champ : numClient qui serait une zone de recherche et qui sera tout le temps affiché.

    - Une fois validé (submit) un N° client, et si celui est trouvé dans la BDD, alors le 2ème formulaire sera affiché avec les infos du client.

    De plus, du moins normalement, il n'est pas utile de faire un boucle avec un while, car un N° de client est unique, donc il ne peut avoir qu'1 seul résultat.
    $ligne (que je remplace ci-dessous par $clients) sera un tableau avec toutes les infos du client.

    Dernier petit truc.
    Il vaut mieux indiquer le nom de la page dans le formulaire (action="mapage.php"), et non pas dans le bouton submit.

    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
     
    <?php
    $nombreClient = 0;
    $idClient = null;
    //
    if (isset($_POST['idClient']) && !empty($_POST['idClient'])) {
    	$idClient = mysql_real_escape_string($_POST['idClient']);
    	$mysql_result = mysql_query("SELECT numClient, nomClient, prenomClient, adresseClient, CP FROM client WHERE EF_Id = '".$idClient."'");
    	$nombreClient = mysql_num_rows($mysql_result);
    	$client = mysql_fetch_array($mysql_result);
    }
    ?>
     
    <!-- Zone de recherche -->
    <form name="form_idclient" action="mapage.php" method="post">
    <input type="text" name="idClient" value="<?php echo $idClient; ?>" />
    <input type="submit" value="Rechercher" />
    </form>
     
    <br />
     
    <?php
    if ((int)$nombreClient > 0 && !empty($client)) {
    ?>
    <!-- Information du client -->
    <form id="Form1" name="form_client" action="mapage.php" method="post">
    <input="text" name="numClient" value="<?php echo $client['numClient']; ?>">numéro client</input><button="submit">envoyer</submit>
    <input="text" name="Nom" value="<?php echo $client['nomClient']; ?>">Nom</input>
    <input="text" name="Prenom" value="<?php echo $client['prenomClient']; ?>">Prenom</input>
    <input="text name=adresse" value="<?php echo $client['adresseClient']; ?>">Adresse</input>
    <input="text" name="CP" value="<?php echo $client['CP']; ?>">CP</input>
    </form>
    <?php
    }
    ?>
    En esprérant que cela correspond un peu à ce que tu recherche, il qu'il y a pas trop d'erreurs
    Je te remercie, je travail à partir de ça et je vous tiens au courant.

    Concernant le champ EF_ID, désolé c'est un stigmate de ma requête d'origine J'ai renommé mes champs pour que ce soit plus facile à comprendre.

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 87
    Points : 50
    Points
    50
    Par défaut
    RunCodePhp, j'ai eu quelques modif à faire mais ce que tu m'a posté m'a bien aidé. C'est bon il y a tout qui fonctionne bien. Encore merci à tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplissage automatique formulaire
    Par rabobsky dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 04/01/2007, 20h47
  2. Pb de remplissage de formulaire
    Par yoyoo dans le forum Access
    Réponses: 4
    Dernier message: 09/08/2006, 16h29
  3. Remplissage de formulaire sur internet.
    Par Pragmateek dans le forum C++
    Réponses: 2
    Dernier message: 30/03/2006, 12h03
  4. [VB6]Remplissage du formulaire d'une page web
    Par tifosi49 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 18/08/2005, 11h13

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