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

PHP & Base de données Discussion :

Couples identiques de listes déroulantes liées dans la même page


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    108
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 108
    Points : 47
    Points
    47
    Par défaut Couples identiques de listes déroulantes liées dans la même page
    je travaille sur un script php qui devrait permettre à l'utilisateur par l'intermédiaire de 2 listes déroulantes listes (dont le contenu de tout les 2 sont des enregistrements dans ma base mysql)et des champs textes qui se répéteront à plusieurs lignes de choisir, matière première, type matière première et d'insérer quantité...
    voici le script de ce que je voulais faire et la photo le concernant est dans les fichiers joints Sans titre.jpg...
    (image navigateur j'ai pas su comment la charger en temps que photo ici!!)
    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    <?php session_start();
    mysql_connect("localhost","root","");
    mysql_select_db("art-mania");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>ajout matière premièreq</title>
    </head>
    //variable session
    <?
    for ($i=1;$i++;$i<12){
    @$vcode_mat= $_REQUEST['mat_pre'.$i];
    @$vcode_typ_mat= $_REQUEST['code_typ_mat'.$i];
    }
    ?>
    <body>
     <table width="700" border="1"><!--table matières premières -->
        <tr>
          <td width="192"><div align="center">Mati&egrave;re premi&egrave;re </div></td>
          <td width="192"><div align="center">D&eacute;SIGNATION</div></td>
          <td width="144"><div align="center">QTE</div></td>
          <td width="144"><div align="center">couleur</div></td>
        </tr>
        <tr>
    //liste matiere premiere1
          <td><select name='mat_pre1' onchange="form1.submit()">
              <option >----------------</option>
              <?
    $req = mysql_query("SELECT * FROM matiere_premiere where des_mat_pre!='tissus' ORDER BY des_mat_pre;");
    while($res = mysql_fetch_array($req)){
    if (@$vcode_mat == $req[0])
    $selected = "selected";
    else
    $selected = "";?>
              <option value= "<?= $res[0] ?>" <?=$selected?> ><?php print ("$res[1]");?> </option>
              <?php
    }
    ?>
          </select></td>
    //type matière première
          <td height="23"><select name='code_typ_mat1' onChange="form1.submit()">
    <option >Choisir une matière première</option>
    <?php
    $req = mysql_query("SELECT * FROM type_matiere_premiere where code_mat_pre =$vcode_mat ");
    while($res = mysql_fetch_array($req)){
    if (@$vcode_typ_mat == $res[3])
    $selected = "selected";
    else
    $selected = "";?>
    <option value= <?= $res[3] ?> <?=$selected?> ><?php print ("$res[4]");?> </option>
    <?php
    }
    ?>
    </select></td>
    //insèrer quantité
          <td><input type="text" name="qte_mat_pre5" id="qte_mat_pre5"/></td>
    //insérer coleur
          <td><input type="text" name="couleur" id="couleur"/></td>
        </tr>
        <tr>
          <td><select name='mat_pre2' onchange="form1.submit()">
              <option >----------------</option>
              <?
    $req = mysql_query("SELECT * FROM matiere_premiere where des_mat_pre!='tissus' ORDER BY des_mat_pre;");
    while($res = mysql_fetch_array($req)){
    if (@$vcode_mat == $req[0])
    $selected = "selected";
    else
    $selected = "";?>
              <option value= "<?= $res[0] ?>" <?=$selected?> ><?php print ("$res[1]");?> </option>
              <?php
    }
    ?>
          </select></td>
          <td><select name='code_typ_mat2' onchange="form1.submit()">
              <option >Choisir une mati&egrave;re premi&egrave;re</option>
              <?php
    $req = mysql_query("SELECT * FROM type_matiere_premiere where code_mat_pre =$vcode_mat ");
    while($res = mysql_fetch_array($req)){
    if (@$vcode_typ_mat == $res[3])
    $selected = "selected";
    else
    $selected = "";?>
              <option value= "<?= $res[3] ?>" <?=$selected?> ><?php print ("$res[4]");?> </option>
              <?php
    }
    ?>
          </select></td>
          <td><input type="text" name="qte_mat_pre6" id="qte_mat_pre6"/></td>
          <td><input type="text" name="couleur2" id="couleur2"/></td>
        </tr>
        <tr>
          <td><select name='mat_pre3' onchange="form1.submit()">
              <option >----------------</option>
              <?
    $req = mysql_query("SELECT * FROM matiere_premiere where des_mat_pre!='tissus' ORDER BY des_mat_pre;");
    while($res = mysql_fetch_array($req)){
    if (@$vcode_mat == $req[0])
    $selected = "selected";
    else
    $selected = "";?>
              <option value= "<?= $res[0] ?>" <?=$selected?> ><?php print ("$res[1]");?> </option>
              <?php
    }
    ?>
          </select></td>
          <td><select name='code_typ_mat3' onchange="form1.submit()">
              <option >Choisir une mati&egrave;re premi&egrave;re</option>
              <?php
    $req = mysql_query("SELECT * FROM type_matiere_premiere where code_mat_pre =$vcode_mat ");
    while($res = mysql_fetch_array($req)){
    if (@$vcode_typ_mat == $res[3])
    $selected = "selected";
    else
    $selected = "";?>
              <option value= "<?= $res[3] ?>" <?=$selected?> ><?php print ("$res[4]");?> </option>
              <?php
    }
    ?>
          </select></td>
          <td><input type="text" name="qte_mat_pre7" id="qte_mat_pre7"/></td>
          <td><input type="text" name="couleur3" id="couleur3"/></td>
        </tr>
        ...
    ce script est non fonctionnel, c'est seulement le contenu de la première liste lié qui se charge et s'affiche... en effet je vous donne le script d'un prototype des liste liés concernés et qui fonctionne
    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
    <?php
    mysql_connect("localhost","root","");
    mysql_select_db("art-mania");
    ?>
    <html>
    <head>
    <title>Tutoriel Ajax (XHTML + JavaScript + XML)</title>
    </head>
    <?
    @$vcode_mat= $_REQUEST['mat_pre'];
    @$vcode_typ_mat= $_REQUEST['code_typ_mat'];
    ?>
    <body>
    <form action="liste_deroulante3.php" method="post" name="form1">
    <legend>Liste liées</legend>
    <label>matiere premiere</label>
    <select name='mat_pre' onChange="form1.submit()">
    <option >----------------</option>
    <?
    $req = mysql_query("SELECT * FROM matiere_premiere where des_mat_pre!='tissus' ORDER BY des_mat_pre;");
    while($res = mysql_fetch_array($req)){
    if (@$vcode_mat == $req[0])
    $selected = "selected";
    else
    $selected = "";?>
    <option value= <?= $res[0] ?> <?=$selected?> ><?php print ("$res[1]");?> </option>
    <?php
    }
    ?>
    </select>
    <p>
    <label>type matière première</label>
    <select name='code_typ_mat' onChange="form1.submit()">
    <option >Choisir une matière première</option>
    <?php
    $req = mysql_query("SELECT * FROM type_matiere_premiere where code_mat_pre =$vcode_mat ");
    while($res = mysql_fetch_array($req)){
    if (@$vcode_typ_mat == $res[2])
    $selected = "selected";
    else
    $selected = "";?>
    <option value= <?= $res[2] ?> <?=$selected?> ><?php print ("$res[3]");?> </option>
    <?php
    }
    ?>
    </select>
    </div>
    </p>
    <?
    // le meme boucle pour une autre jointure en ajoutant la nouvelle table
    ?>
    </fieldset>
    </form>
    </body>
    </html>
    ayant essayé au début un script où je pouvais à chaque fois par l'intermédiaire d'une fonction ajax de duplication de lignes de tableau ajouter ou supprimer selon la volonté de l'utilisateur des lignes de tableau
    formu-part31.php ,mais à cause du contenu mysql à chaque fois y a un message "erreur" qui s'affiche!
    merci pour votre aide d'avance!!! ça urge de plus en plus à le faire et tout cette difficulté me tape sur le système!!
    merci!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    et si tu pensais à faire des passage à la ligne, mettre des points, des virgules ... ?
    Parce que là, je n'ai rien compris !
    Je ne suis pas Jacques Mayol ! J'ai besoin de respirer de temps en temps ...
    Dernière modification par Invité ; 03/05/2009 à 23h20.

  3. #3
    Membre du Club
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    108
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 108
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,
    et si tu pensais à faire des passage à la ligne, mettre des points, des virgules ... ?
    Parce que là, je n'ai rien compris !
    Je ne suis pas Jacques Mayol ! J'ai besoin de respirer de temps en temps ...
    salut voila j'ai modifier le sujet es ce qu'il est encore incompréhensible?

  4. #4
    Invité
    Invité(e)
    Par défaut
    1ere chose :
    tu vas créer un fichier :
    _connexion.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $host='*****';
    $user='****';
    $pass='';
    $dbase='******';
    // Connexion au serveur
    $connexion = mysql_connect($host,$user,$pass)or die ("Erreur de connexion");
    mysql_select_db($dbase,$connexion)or die ("Erreur de connexion base");
    ?>
    Et dans tes pages tu n'auras plus qu'a mettre (au début) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    // connexion a la BD
     include("_connexion.php");
    ?>
    Ca t'évitera d'avoir tous tes codes de connexion écrits en clair dans toutes tes pages.

  5. #5
    Invité
    Invité(e)
    Par défaut
    2eme chose : il faut progresser étape par étape.

    1- mettre pour tes requetes :
    $res = mysql_query("select ........") OR die('Erreur: '.mysql_error());
    On pourra mieux déceler les erreurs.

    2- commencer avec UNE SEULE LIGNE dans ton tableau :
    je suppose que la 2eme liste est liée à la 1ere ?

    3- Quand ca fonctionnera pour 1 ligne, passer à DEUX LIGNES :
    (si ca marche pour 2 lignes, ca marchera pour x lignes !)
    Je epnse que tout se joue sur le fait de créer des arrays à 2 dimensions au lieu des arrays à 1 dimension "classiques" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ligne 1 :
    $req[0] = mysql_query("select ........") OR die('Erreur: '.mysql_error());
    while ($res[0] == mysql_fetch_array($req[0]))
    ligne 2 :
    $req[1] = mysql_query("select ........") OR die('Erreur: '.mysql_error());
    while ($res[1] == mysql_fetch_array($req[1]))
    ... (et ainsi de suite)
    ........
    De meme pour les noms des input ...
    Dernière modification par Invité ; 04/05/2009 à 00h15.

  6. #6
    Membre du Club
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    108
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 108
    Points : 47
    Points
    47
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    2eme chose : il faut progresser étape par étape.

    1- mettre pour tes requetes :
    $res = mysql_query("select ........") OR die('Erreur: '.mysql_error());
    On pourra mieux déceler les erreurs.

    2- commencer avec UNE SEULE LIGNE dans ton tableau :
    je suppose que la 2eme liste est liée à la 1ere ?

    3- Quand ca fonctionnera pour 1 ligne, passer à DEUX LIGNES :
    (si ca marche pour 2 lignes, ca marchera pour x lignes !)
    Je epnse que tout se joue sur le fait de créer des arrays à 2 dimensions au lieu des arrays à 1 dimension "classiques" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ligne 1 :
    $req[0] = mysql_query("select ........") OR die('Erreur: '.mysql_error());
    while ($res[0] == mysql_fetch_array($req[0]))
    ligne 2 :
    $req[1] = mysql_query("select ........") OR die('Erreur: '.mysql_error());
    while ($res[1] == mysql_fetch_array($req[1]))
    ... (et ainsi de suite)
    ........
    De meme pour les noms des input ...
    rebonsoir j'ai essayé de éditer les changements comme vous avez proposez et voilà ce que ça donne..
    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
     
    <?php session_start();
    include("dynamique/connect.php");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <form action="formu-part33.php" method="post" name="form1" id="form1">
    <?
    @$vcode_mat_tab1= $_REQUEST['mat_pre1'];
    @$vcode_typ_mat_tab1= $_REQUEST['code_typ_mat1'];
    @$vcode_mat_tabdeux= $_REQUEST['mat_pre2'];
    @$vcode_typ_mat_tabdeux= $_REQUEST['code_typ_mat2'];
    ...
    ?>
      <table width="700" border="1">
        <tr>
          <td width="192"><div align="center">Mati&egrave;re premi&egrave;re </div></td>
          <td width="192"><div align="center">D&eacute;SIGNATION</div></td>
          <td width="144"><div align="center">QTE</div></td>
          <td width="144"><div align="center">couleur</div></td>
        </tr>
        <tr>
          <td><select name='mat_pre1' onchange="form1.submit()">
              <option >----------------</option>
              <?
    $req = mysql_query("SELECT * FROM matiere_premiere where des_mat_pre!='tissus' ORDER BY des_mat_pre;")OR die('Erreur: '.mysql_error());
    while($res = mysql_fetch_array($req)){
    if (@$vcode_mat_tab1== $req[0])
    $selected = "selected";
    else
    $selected = "";?>
              <option value= "<?= $res[0] ?>" <?=$selected?> ><?php print ("$res[1]");?> </option>
              <?php
    }
    ?>
          </select></td>
          <td height="23"><select name='code_typ_mat1' onChange="form1.submit()">
    <option >Choisir une matière première</option>
    <?php
    $req = mysql_query("SELECT * FROM type_matiere_premiere where code_mat_pre =$vcode_mat_tab1 ")OR die('Erreur: '.mysql_error());
    while($res = mysql_fetch_array($req)){
    if (@$vcode_typ_mat_tab1== $res[3])
    $selected = "selected";
    else
    $selected = "";?>
    <option value= <?= $res[3] ?> <?=$selected?> ><?php print ("$res[4]");?> </option>
    <?php
    }
    ?>
    </select></td>
          <td><input type="text" name="qte_mat_pre5" id="qte_mat_pre5"/></td>
          <td><input type="text" name="couleur-mousse" id="couleur-mousse"/></td>
        </tr>
        <tr>
          <td><select name='mat_pre2' onchange="form1.submit()">
              <option >----------------</option>
              <?
    $req = mysql_query("SELECT * FROM matiere_premiere where des_mat_pre!='tissus' ORDER BY des_mat_pre;")OR die('Erreur: '.mysql_error());
    while($res = mysql_fetch_array($req)){
    if (@$vcode_mat_tabdeux == $req[0])
    $selected = "selected";
    else
    $selected = "";?>
              <option value= "<?= $res[0] ?>" <?=$selected?> ><?php print ("$res[1]");?> </option>
              <?php
    }
    ?>
          </select></td>
          <td><select name='code_typ_mat2' onchange="form1.submit()">
              <option >Choisir une mati&egrave;re premi&egrave;re</option>
              <?php
    $req = mysql_query("SELECT * FROM type_matiere_premiere where code_mat_pre=@$vcode_mat_tabdeux ")OR die('Erreur: '.mysql_error());
    while($res = mysql_fetch_array($req)){
    if (@$vcode_typ_mat_tabdeux == $res[3])
    $selected = "selected";
    else
    $selected = "";?>
              <option value= "<?= $res[3] ?>" <?=$selected?> ><?php print ("$res[4]");?> </option>
              <?php
    }
    ?>
          </select></td>
          <td><input type="text" name="qte_mat_pre6" id="qte_mat_pre6"/></td>
          <td><input type="text" name="couleur-mousse2" id="couleur-mousse2"/></td>
        </tr>
        <tr>
          <td><select name='mat_pre3' onchange="form1.submit()">
              <option >----------------</option>
              <?
    $req = mysql_query("SELECT * FROM matiere_premiere where des_mat_pre!='tissus' ORDER BY des_mat_pre;");
    while($res = mysql_fetch_array($req)){
    if (@$vcode_mat_tab3 == $req[0])
    $selected = "selected";
    else
    $selected = "";?>
              <option value= "<?= $res[0] ?>" <?=$selected?> ><?php print ("$res[1]");?> </option>
              <?php
    }
    ?>
          </select></td>
          <td><select name='code_typ_mat3' onchange="form1.submit()">
              <option >Choisir une mati&egrave;re premi&egrave;re</option>
              <?php
    $req = mysql_query("SELECT * FROM type_matiere_premiere where code_mat_pre =$vcode_mat_tab3 ");
    while($res = mysql_fetch_array($req)){
    if (@$vcode_typ_mat_tab3 == $res[3])
    $selected = "selected";
    else
    $selected = "";?>
              <option value= "<?= $res[3] ?>" <?=$selected?> ><?php print ("$res[4]");?> </option>
              <?php
    }
    ?>
    alors donc euh c'est seulement les premières listes liés (ligne 1)qui marchent!!
    et pour les autres c'est comme d'habitude la première liste déroulante uniquement qui affichent leur contenu!

Discussions similaires

  1. Réponses: 15
    Dernier message: 21/01/2015, 10h14
  2. [Joomla!] [3.x] Listes déroulantes liées dans module
    Par Mell dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 16/09/2014, 22h02
  3. Problèmes de liste déroulante liée dans formulaire continu
    Par delgicoule dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 27/08/2013, 14h34
  4. [AC-2007] Actualiser liste déroulante liée dans sous-formulaire
    Par Elno11 dans le forum IHM
    Réponses: 5
    Dernier message: 24/12/2012, 14h42
  5. Réponses: 8
    Dernier message: 03/08/2008, 14h59

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