Listes déroulantes sans bouton PHP uniquement

Le problème exposé dans ce sujet a été résolu.

Bonjour,

j’ai mis en place des filtres d’affichage à l’aide d’un formulaire.

j’aimerais que l’affichage se fasse uniquement lorsque l’option de la liste déroulante est sélectionnée, sans que l’utilisateur ait à valider en cliquant sur un bouton.

est-il possible de le faire uniquement en PHP ou faut-il obligatoirement passer par du Javascript ?

d’avance merci pour vos réponses

Si tu organises bien ton DOM, il y a sûrement moyen de faire cela sans JS, juste avec du CSS. Tu auras besoin de la pseudo-classe ":checked"

Et bien non, avec un "select" ce n’est pas possible en 100% CSS car il n’y a pas (encore?) de sélecteur parent en CSS. Il te faudra bien passer par du JS. C’est possible avec une liste de "checkboxs" par contre.

merci j’ai suivi des tuto (j’ai bouclé les tuto HTML5/CCS3 et PHP d’OC + quelques autres) et oui, je suis déjà aller voir sur google mais n’ayant trouvé que des exemples utilisant Javascript je voulais confirmation

et effectivement, tu n’as pas compris ma demande, c’est bien une liste déroulante sur un select je "patauge" comme tu dis, mais je progresse quand même en prenant du plaisir

Je suis resté bloqué sur "menu déroulant", mon précédent message n’a donc aucun sens. La difficulté et les prérequis sont compléments différents. Et l’utilisation du JS devient obligatoire.

Je t’ai fais une petite fonction flexible : https://jsfiddle.net/z7ge5zsu/

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
function a312display(e, select) {
    var child = select[0],
        target;

  if (!child) return;

  do {
  console.log(child.selected );
    if (child.dataset && child.dataset.targetid) {
        target = document.getElementById(child.dataset.targetid)
      if (target) {
        target.style.display = (child.selected) ? "inherit" : "none";
      }
    }
  } while (child = child.nextElementSibling);
}

Dans ton select tu dois rajouter : onchange="return a312display(event, this)".

Puis dans ton élément option qui dois afficher un élément, tu ajoutes : data-targetid="avion"avion est l’id de l’élément.

Bonjour,

merci à vous deux pour vos réponses vous vous en doutez mais je ne comprends rien au code proposé par A-312… encore moins que PHP :D

je mets ce post en résolu bonne journée,

LE CARROU

Il suffit juste d’ajouter le code à la page via une balise <script>, et de faire ce que je te dis :

Dans ton select tu dois rajouter : onchange="return a312display(event, this)".

Puis dans ton élément option qui dois afficher un élément, tu ajoutes : data-targetid="avion" où avion est l’id de l’élément.

Tu as même un exemple : https://jsfiddle.net/z7ge5zsu/

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte