Bonjour à tous,
Je sais qu'après lecture de mon titre vous vous dites, un n-ième problème de liste liées alors qu'il y a des tutoriels etc.. Je suis d'accord avec vous, car en effet je me suis appuyé sur les tutoriels pour avancer comme j'ai pu. Cependant je rencontre un problème, je vous explique.
J'ai donc réalisé 2 listes déroulantes liées, la 2ème propose des choix spécifiques à l'élément que l'on a sélectionné dans la 1ère liste.
Cela fonctionne bien, je me suis inspiré ce qu'il y avait sur internet, que j'ai réadapté à mes besoins, voici le code :
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 <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chg_localisation"> <select name="localisation" id="localisation" onchange="document.forms['chg_localisation'].submit();"> <option>- - - Choisissez une localisation - - -</option> <?php $sql1 = "select loc_tr_id, loc_libelle from localisation"; $rech_localisation = mysql_query($sql1); if($rech_localisation != false){ while($data = mysql_fetch_assoc($rech_localisation)){ ?> <option value="<?php echo $data['loc_tr_id']; ?>" <?php if(isset($_SESSION['localisation']) AND $_SESSION['localisation'] == $data['loc_tr_id']) echo 'selected="selected"'; ?>> <?php echo $data['loc_libelle']; ?> </option> <?php } } mysql_free_result($rech_localisation); ?> </select> </form> <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chg_sous_reseau"> <select name="MASK" id="MASK" onchange="document.forms['chg_sous_reseau'].submit();"> <option>- - - Choisissez un sous-reseau - - -</option> <?php if(isset($_SESSION['localisation'])){ $sql2 = "SELECT DISTINCT sousreseau.sr_vl_id, sousreseau.sr_libelle, sousreseau.sr_ad_basse, localisation.loc_tr_id ". " FROM sousreseau, localisation ". " WHERE sousreseau.sr_loc = ". $_SESSION['localisation'] ." "; $rech_sous_reseau = mysql_query($sql2); if($rech_sous_reseau != false){ while($data = mysql_fetch_assoc($rech_sous_reseau)){ ?> <option value="<?php echo $data['sr_vl_id']; ?>" <?php if(isset($_SESSION['localisation']) AND $_SESSION['MASK'] == $data['sr_vl_id']) echo 'selected="selected"'; ?>> <?php echo $data['sr_libelle']; echo $data['sr_ad_basse']; ?> </option> <?php } } mysql_free_result($rech_sous_reseau); } ?> </select> </form>
J'ai un autre code qui permet d'afficher des élements selon le choix que l'on a fait dans une liste d'adresse IP. Je vous mets que le code qui permets de sélectionner les élements. Le choix est renvoyer vers une page EDITER.php qui s'occupe que de l'affichage des élements.
Le problème, c'est que je ne parviens à "allier" ces deux codes, en effet, j'aimerai pouvoir avec 2 listes liées, dont la première permettra "de faire le tri" en choisissant une localisation, et la seconde de proposer les éléments correspondants. Ce qui va nous permettre d'afficher les éléments du choix de la 2ème liste déroulante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <select name="MASK" id="MASK"> <?PHP echo '<option value="1">Selectionner un sous-reseau</option>'; /*initialisation sql*/ $sql='select sr_id,sr_libelle,sr_ad_basse,sr_aff from SOUSRESEAU ORDER BY sr_aff ASC'; $req= mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); while($data = mysql_fetch_array($req)){ echo '<option value="'.$data["sr_id"].'">'.$data["sr_libelle"].' '.$data["sr_ad_basse"].'</option>'; } ?> </select>
En gros, les deux codes marche bien séparement, mais lors de mes innombrables tentatives de les mettres en commun, rien ne marche. J'ai cherché du coté du fait que dans le code EDITER.php, on récupère la variable de choix sous la forme $_GET['MASK'], tandis que dans les deux codes, c'est du type POST. J'ai essayé de manipuler, re-transformer etc.. sans succès.
Merci d'avoir lu, et de votre aide, par avance !![]()
Partager