Bonjour à Tous, j'ai créer deux listes déroulantes.
La 2nde liste est filtrée à partir du résultat sélectionné dans la 1ère.
voici le code JS:
Ensuite ma requête permettent de récupérer la valeur de mes champs à modifier :
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 <script type='text/javascript'> function getXhr(){ var xhr = null; if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } return xhr; } /** * Méthode qui sera appelée sur le click du bouton */ function go(){ var xhr = getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200){ leselect = xhr.responseText; // On se sert de innerHTML pour rajouter les options a la liste document.getElementById('modele').innerHTML = leselect; } } // Ici on va voir comment faire du post xhr.open("POST","ajaxConstructeur.php",true); // ne pas oublier ça pour le post xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier de poster les arguments // ici, l'id de l' sel = document.getElementById('constructeur'); idconstructeur = sel.options[sel.selectedIndex].value; xhr.send("idConstructeur="+idconstructeur); } </script>
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 connexion(); $req = mysql_query( "SELECT * FROM equipement, materiel2 , modele2 , constructeur2, serveur WHERE equipement.id_equipement = materiel2.id_equipement AND materiel2.id_modele = modele2.id_modele AND modele2.id_constructeur = constructeur2.id_constructeur AND materiel2.id_equipement = serveur.id_equipement AND equipement.id_equipement = ".$id_equipement); while( $res=mysql_fetch_array($req) ) { $nom=$res[3]; $id_constructeur=$res[11]; $id_modele=$res[10]; $fonction=$res[17]; $format=$res[18]; $bios=$res[19]; $date=$res[4]; $status=$res[5]; $comment=$res[6]; } $requete = mysql_query( "SELECT id_projet FROM binomer_projet where id_equipement= ".$id_equipement) or die ('Erreur : '.mysql_error() ); while( $result=mysql_fetch_array($requete) ) { $id_projet= $result[0]; }
Enfin mes 2 listes déroulantes à la suite :
Jusqu'ici je n'ai pas de Souci, ça fonctionne nickel !
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 <tr> <td class="right-label" style="width: 100px;" nowrap>Constructeur *</td> <td colspan=3 class="left-label" nowrap> <select name='constructeur' id='constructeur' onchange='go()'> <option value='-1'>-----------------------</option> <? mysql_connect("localhost","root",""); mysql_select_db("test"); $res = mysql_query("SELECT * FROM constructeur2 ORDER BY nom"); while($row = mysql_fetch_assoc($res)){ echo $row["id_constructeur"]; echo "<option value='".$row["id_constructeur"]."'>".$row["nom"]."</option>"; if($id_constructeur == $row[0]) { print "selected"; } print ">$row[1]</option>\n"; } ?> </select> </td> </tr> <tr><td colspan=2 style="font-size: 5;"><br></td></tr> <tr> <td class="right-label" style="width: 30px;" nowrap>Modele *</td> <td colspan=3 class="left-label" nowrap> <div id='modele' style='display:inline'> <select name='modele'> <option value='-1'>------------------------</option> </select> </div> <?php print "<A style=\"cursor: pointer;\" onclick=\"javascript:window.open('add_constructeur.php?clients=$id_client','popup','width=400,height=400,scrollbars=0,location=0,status=0,resizable=0');\"> <img src=\"../images/add.jpg\" width=11 height=11 border=0> </A>"; ?> </td> </tr>
Le problème que je rencontre , c'est quand je souhaite modifier le contenu de ces 2 listes :
- je clique sur le bouton modifier qui a comme parametre dans l'URL "id" qui est l'id de l'équipement et id_client qui correspond à l'id_client.
- Tous mes autres champs (text ...) remontent correctement les informations à modifier .....mais pas les listes déroulantes.
J'aimerais que mes listes déroulantes lors de la modification m'affiche la valeur contenue dans ma base de données ..
J'ai donc essayé pour ma première liste déroulante le code suivant :
if($id_constructeur == $row[0]) { print "selected"; }
print ">$row[1]</option>\n";
Si $id_constructeur = au premier champs de mon tableau rempli par la requete .., alors on sélectionne le résultat ....
Mais ça ne fonctionne pas....
Quelqu'un pourrait il m'aider ? Je pense que c'est tout bête mais je galère depuis un petit moment ...
Merciii
Partager