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] Chargement automatique des champs


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 70
    Points : 27
    Points
    27
    Par défaut [PHP-JS] Chargement automatique des champs
    j'ai crée un formulaire qui contient les 4 champs suivants : N°agence ,Nomagence ,tel e fax.
    le champ N°agence est une liste déroulante qui contient tout les num agence stockés dans la base ,le probleme c'est que lorsque l 'utilisateur choisit un numero d'agence il faut que tout les autres champs Nom agence ,tel e fax qui correspond a ce num seront chargé automatiquement dans le formulaire a partir de la base ,le code est en php et la base de donnée est crée avec acces
    je vous sollicite de m'aider a elaborer le reste du code
    et merci d'avance pour votre collaboration
    le code est le suivant :
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    <html>
    <head>
    <title>Agence</title>
    </head>
    <body background="C:\Documents and Settings\Poste\Mes documents\Mes images\28.bmp" >
    <br/><br/><br/><br/><br/>
    <form>
    <?
    $bd="fiche";
    $user="root";
    $password="123456";
    $cnx=odbc_connect($bd,$user,$password);
    if(!$cnx)
    echo"Impossible de se connecter";
    ?>
     
    <table width="400" height="200" bgcolor="white" align="center" valign="middle" bgColor="white">
    <tr>
    <td valign="middle" width="200"><font face="monotype corsiva" size="4" color="darkblue">N°Agence :</font></td>
    <td valign="middle" width="200" >
    <?
    echo"<select name=\"Agence\">";
    $res=odbc_exec($cnx,"select N°agence from Agence");
    while (odbc_fetch_row($res))
    {
    $nag=odbc_result($res,1);
    echo"<option>$nag";
    }
    echo"</select>";
    ?>
    </td>
    </tr>
    <tr><td valign="middle" width="200"><font face="monotype corsiva" size="4" color="darkblue">Nom Agence :</font></td>
    <td valign="middle" width="200"> <input type ="text" name="nomagence"></td>
    </tr>
    <br/>
    <br/>
    <tr><td valign="middle" width="200"><font face="monotype corsiva" size="4" color="darkblue"> Tel :</font> </td>
    <td valign="middle" width="200"><input type="text" name="tel"></td>
    </tr>
    <br/>
    <br/>
    <tr><td valign="middle" width="200"><font face="monotype corsiva" size="4" color="darkblue"> Fax :</font></td>
    <td width="200" valign="middle"><input type="text" name="tel"></td>
    </tr>
    </table>
    <br/>
    <br/>
    <br/>
    <table width="600" bgcolor="white" align="center">
    <tr> 
      <td align="center" valign="middle" width="300"> <button
                      type="button"
                      value="button"
                      name="script" onClick="window.location='Menu1.php'"><font face="monotype corsiva" size="3" color="darkblue"><< Vers Menu</font></button></td>
     
       <td align="center" valign="middle" width="300"><button
                      type="button"
                      value="button"
                      name="script" onClick="window.location='Entreprise.php'"><font face="monotype corsiva" size="3" color="darkblue">Continuer >></font></button></td>
    </tr>
    </table>
    </form>
    </html>

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Points : 502
    Points
    502
    Par défaut
    si tu n'a pas trop d'agence à gérer tu peux charger toutes les agences dans un tableau en javascript et ensuite sur la modification d'un champ tu reprends les valeurs qui correspondent dans ton tableau js et tu modifie les champs de ton formulaire

    sinon tu as la méthode ajax

    sinon faudra attendre qu'une ame charitable te pond un bout de code pour une des solutions

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 70
    Points : 27
    Points
    27
    Par défaut
    j ai plus de 90 agences a gerer et la méthode ajax me parait trés compliqué

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Deux solutions :
    1. Tu obliges l'utilisateur à appuyer sur un bouton avant de continuer (formulaire multi pages, cf. les cours de ma signature) ;
    2. Tu utilises AJAX pour avoir un chargement automatique et un formulaire en une seule page.

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    sur le select de tes numeros d'agence, tu fais un onChange de ce type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select ... onchange="javascript:document.form1.submit();">
    Ce qui va recharger le formulaire a chaque choix d'un identifiant agence.

    Ensuite au début de ton code tu fais ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(isset($_POST['Agence'])){
    $res=odbc_exec($cnx,"select N°agence from Agence where id=".$_POST['Agence']);
    etc...
    }
    Tu récupère ainsi les infos de l'agence en question
    Ensuite, pour chaque ligne du formulaire tu mets en "value" la value que tu as recupéré dans ta base de données.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 70
    Points : 27
    Points
    27
    Par défaut
    j"ai integrer le code precedent comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?
    echo"<select name=\"Agence\" onChange=\"javascript:document.Agence.submit();\">";
    if(isset($_POST['Agence']))
    {
    $res=odbc_exec($cnx,"select N°agence from Agence where N°agence=".$_POST['Agence']);
    while (odbc_fetch_row($res))
    {
    $nag=odbc_result($res,1);
    echo"<option>$nag";
    }
    echo"</select>";
    }
    ?>
    la page s' afiicher mais rien ne fonctionne

  7. #7
    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
    tu oublie de fermer la balise option :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo"<option>$nag</option>";

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Qu'entends-tu par "rien ne fonctionne" ?

    Note que l'évènement JS s'appelle "onchange" sans majuscule.

    Au passage, je te recommande cette lecture : Apostrophes ou guillemets, lesquels choisir ?

  9. #9
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 70
    Points : 27
    Points
    27
    Par défaut
    le problème reside dans cette ligne

    $res=odbc_exec($cnx,"select N°agence from Agence where N°agence=".$_POST['Agence']");


    je m'excuse si je vous ai causé des ennuis

  10. #10
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Quel est le probl_ème, est-ce que tu n'as pas de données, est-ce un souci de syntaxe SQL... ?

  11. #11
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 70
    Points : 27
    Points
    27
    Par défaut
    les données sont stockés dans la base ..
    et avant d'integrer le code que vous m'avez donnée la liste déroulante N°agence affiche tout les numéros des agences mais maintenant ca marche pas

  12. #12
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Nous avons besoin d'un message d'erreur pour aller plus loin. Les fonctions d'exécution de requête viennent généralement avec un code de retour. Avec MySQL, on a l'habitude de procéder plus ou moins comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mysql_query('SELECT * FROM table')
       or die(mysql_error());
    Je te laisse reprendre l'idée pour ODBC ?

  13. #13
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 70
    Points : 27
    Points
    27
    Par défaut
    et à quoi ca cert ce message d'erreur

  14. #14
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Au risque de paraître redondant, un message d'erreur sert à te dire quelle erreur se trouve dans ton code, et ainsi à pouvoir la corriger

  15. #15
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 70
    Points : 27
    Points
    27
    Par défaut
    j 'arrive à elaborer ce code a l'aide d'une autre personne et il me parait plus efficace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?
    function affich ($nagence)
    {
    $a=odbc_exec($cnx,"select Nomagence from Agence where N°agence='$nagence'"); 
    $b=odbc_exec($cnx,"select tel from Agence where N°agence='$nagence'");
    }
    ?>
    maintenant comment faire pour recuperer les valeurs retournés dans des champs text et la valeur selectioné dans la liste sachant que j'ai deja cree le code suivant :

    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
    <table width="400" height="200" bgcolor="white" align="center" valign="middle" bgColor="white">
    <tr>
    <td valign="middle" width="200"><font face="monotype corsiva" size="4" color="darkblue">N°Agence :</font></td>
    <td valign="middle" width="200" >
    <?
    echo"<select name=\"Agence\" onchange=\"affich($selected)\" >";
    $res=odbc_exec($cnx,"select N°agence from Agence ");
    while (odbc_fetch_row($res))
    {
    $nag=odbc_result($res,1);
    echo"<option>$nag</option>";
    }
    echo"</select>";
    ?>
    </td>
    </tr>
    <?
    echo"<tr><td valign=\"middle\" width=\"200\"><font face=\"monotype corsiva\" size=\"4\" color=\"darkblue\">Nom Agence :</font></td>
    <td valign=\"middle\" width=\"200\"> <input type =\"text\" name=\"nomagence\"></td>
    </tr>
    <br/>
    <br/>
    <tr><td valign=\"middle\" width=\"200\"><font face=\"monotype corsiva\" size=\"4\" color=\"darkblue\"> Tel :</font> </td>
    <td valign=\"middle\" width=\"200\"><input type=\"text\" name=\"tel\" value=\"$b\"></td>
    </tr>";
    ?>

  16. #16
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Tu trouveras dans ma signature un lien vers mes cours. L'un d'eux traite des formulaires et présente divers exemples fonctionnels, notamment dans la partie "formulaire multipages".

Discussions similaires

  1. [PHP-JS] Génération automatique des pages
    Par piotrowski-s dans le forum Langage
    Réponses: 5
    Dernier message: 13/08/2007, 13h34
  2. Aide automatique des champs texte
    Par stailer dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 18/01/2007, 14h22
  3. Réponses: 5
    Dernier message: 03/10/2006, 23h15
  4. Réponses: 4
    Dernier message: 22/05/2006, 15h41
  5. [MySQL] Remplissage automatique des champs d'un formulaire
    Par dodji05 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/04/2006, 16h11

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