Affichage d'une liste selon ce qu'on sélectionne
Posté : 29 févr. 2012, 17:19
Bonjour,
le titre de mon sujet n'est peut être pas très explicite, mais je ne savais pas trop comment l'exprimer autrement en peu de mot.
En gros, voici mon problème :
On dispose d'une liste de 5 noms. Je voudrais que selon le mot que l'on sélectionne dans la liste, ça affiche à coté ou non une autre liste (sorte de sous liste).
Par exemple, dans mon cas :
j'ai une liste d'offres commerciales. Certaines offres, mais pas toutes, disposent d'une sorte d'option supplémentaire. Et donc, je souhaiterai afficher cette option, uniquement si on choisit la bonne offre (Pas la peine de mettre une option à une offre qui n'en a pas !)
Pour le moment, voici à quoi ressemble mon code :
le titre de mon sujet n'est peut être pas très explicite, mais je ne savais pas trop comment l'exprimer autrement en peu de mot.
En gros, voici mon problème :
On dispose d'une liste de 5 noms. Je voudrais que selon le mot que l'on sélectionne dans la liste, ça affiche à coté ou non une autre liste (sorte de sous liste).
Par exemple, dans mon cas :
j'ai une liste d'offres commerciales. Certaines offres, mais pas toutes, disposent d'une sorte d'option supplémentaire. Et donc, je souhaiterai afficher cette option, uniquement si on choisit la bonne offre (Pas la peine de mettre une option à une offre qui n'en a pas !)
Pour le moment, voici à quoi ressemble mon code :
<td>
<label for="offrecommerciale">Offre commerciale</label>
</td>
<td colspan=3>
<?php //la fonction addOffresCommerciales va lister toutes les offres disponibles.
if(isset($_SESSION['session_offrecommerciale']))
addOffresCommerciales("offrecommerciale", $_SESSION['session_offrecommerciale']);
else
addOffresCommerciales("offrecommerciale", "");
?>
<select id="visites" name="visites" <?php if( isset($_SESSION['session_offrecommerciale']) && ($_SESSION['session_offrecommerciale']==3) || ($_SESSION['session_offrecommerciale']==4) || ($_SESSION['session_offrecommerciale']==5) ) echo 'style="display:inline"';else echo 'style="display:none"'?>>
<option value="avec" <?php if(isset($_SESSION['session_visite']) &&$_SESSION['session_visite'] == "avec") echo "selected='selected'" ?> >Avec visite</option>
<option value="sans" <?php if(isset($_SESSION['session_visite']) &&$_SESSION['session_visite'] == "sans") echo "selected='selected'" ?> >Sans visite</option>
</select>
</td>
Voici la fonction addOffresCommerciales : function addOffresCommerciales($id,$selected){
$req = "SELECT id_offre_commerciale, intitule_offre, active FROM offre_commerciale";
$result = mysql_query($req) or die('Requête invalide : ' . mysql_error() . "\n" . 'Requête complète : ' . $req);
echo "<select id='".$id."' name='".$id."'>";
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
if($row['active'] == 1){
if(isset($selected) && $selected == $row['id_offre_commerciale']) $sel = "selected='selected'"; else $sel = "";
echo "<option ".$sel." value='".$row['id_offre_commerciale']."'>".$row['intitule_offre']."</option>
";
}
}
echo "</select>";
}
Je pensais qu'en utilisant display ca allait fonctionner, mais j'ai meme l'impression qu'il ne rentre meme pas dans le code php dans la balise select. Quand j'inverse display inline et display none ca ne change absolument rien, quoi que je sélectionne comme offre, ce que je souhaite voir affiché de temps en temps est constamment affiché.