A voir également:
- Quelques lignes de javascript
- Partage de photos en ligne - Guide
- Telecharger javascript - Télécharger - Langages
- Excel trier par ordre alphabétique en gardant les lignes - Guide
- Formulaire en ligne de meta - Guide
- Supprimer lignes vides excel fin de tableau - Forum Excel
3 réponses
Bonsoir,
Il est où le JavaScript ? Je ne vois que du PHP ^^
Ta question est assez floue :/ Quand tu dis que tu veux ne pas afficher des éléments, tu veux qu'ils soient générés mais invisibles, ou bien pas générés ? Sinon à mes yeux, ton filtrage a sa place dans la clause WHERE de ta requête SQL, que tu ne montres pas...
J'attends des nouvelles ;)
Il est où le JavaScript ? Je ne vois que du PHP ^^
Ta question est assez floue :/ Quand tu dis que tu veux ne pas afficher des éléments, tu veux qu'ils soient générés mais invisibles, ou bien pas générés ? Sinon à mes yeux, ton filtrage a sa place dans la clause WHERE de ta requête SQL, que tu ne montres pas...
J'attends des nouvelles ;)
Bonjour,
Effectivement il n'y a pas de Javascript pask je ne sais pas du tout comment partir pour coder le script. Et en effet, je veux que tous les résultats soient générés pour en masquer certains lorsque l'utilisateur utilise le filtre. Je voyais ca comme une liste de checkbox a,b,c, etc et lorsque je coche une ou plusieurs cases, seuls les résultats correspondant restent affichés.
Je peux me tromper, mais j'ai cru comprendre que c'était plus simple en Javascript (par la méthode de masquage de blocs déjà généré) plutôt que de générer une nouvelle requête sql a chaque fois que l'on
Coche une case, nan ?
Merci encore
Effectivement il n'y a pas de Javascript pask je ne sais pas du tout comment partir pour coder le script. Et en effet, je veux que tous les résultats soient générés pour en masquer certains lorsque l'utilisateur utilise le filtre. Je voyais ca comme une liste de checkbox a,b,c, etc et lorsque je coche une ou plusieurs cases, seuls les résultats correspondant restent affichés.
Je peux me tromper, mais j'ai cru comprendre que c'était plus simple en Javascript (par la méthode de masquage de blocs déjà généré) plutôt que de générer une nouvelle requête sql a chaque fois que l'on
Coche une case, nan ?
Merci encore
Ok je vois.
C'est un problème assez classique en JS, cliquer sur un élément pour en masquer un autre.
Pour moi, la solution la plus propre est d'utiliser la délégation d'évènements, mais si tu n'es pas à l'aise avec JS, on va prendre une solution plus simple.
Je te donne l'idée générale, et je te laisserai chercher par toi-même pour adapter ça à ta situation.
On a, d'une part, une fonction JS pour masquer un élément, sélectionné par son id.
C'est une bonne habitude à prendre de séparer les scripts et le code HTML : mets le script qui déclare cette fonction dans le <head>.
Ensuite, il faut surveiller l'évènement click. La solution propre s'appelle gestionnaire d'évènements (event listener en anglais) mais comme tu es débutant tu as le droit d'utiliser le viel attribut onclick :
Il faudra que tu génères un onclick et un id adaptés à chacun des couples d'éléments générés par ton PHP.
Maintenant il te faut une fonction pour ré-afficher les éléments masqués. Déclare-là dans le même script que la fonction masquer. Le principe est de « réinitialiser » la valeur display de l'élément :
Et comme tu ne peux pas mettre deux onclick sur le même élément, il te faudra un deuxième élément, ou alors une sorte de « mémoire ». Les checkbox sont pratiques pour ça car tu peux utiliser leur propriété checked. Là j'utilise l'objet this qui permet de repérer dynamiquement quel élément a été cliqué :
Bon courage !
C'est un problème assez classique en JS, cliquer sur un élément pour en masquer un autre.
Pour moi, la solution la plus propre est d'utiliser la délégation d'évènements, mais si tu n'es pas à l'aise avec JS, on va prendre une solution plus simple.
Je te donne l'idée générale, et je te laisserai chercher par toi-même pour adapter ça à ta situation.
On a, d'une part, une fonction JS pour masquer un élément, sélectionné par son id.
function masquer( id ) { document.getElementById(id).style.display = 'none'; };
C'est une bonne habitude à prendre de séparer les scripts et le code HTML : mets le script qui déclare cette fonction dans le <head>.
Ensuite, il faut surveiller l'évènement click. La solution propre s'appelle gestionnaire d'évènements (event listener en anglais) mais comme tu es débutant tu as le droit d'utiliser le viel attribut onclick :
<div id="masque-moi"> ... </div> <a href="#" onclick="masquer('masque-moi')">Clique-moi !</a>
Il faudra que tu génères un onclick et un id adaptés à chacun des couples d'éléments générés par ton PHP.
Maintenant il te faut une fonction pour ré-afficher les éléments masqués. Déclare-là dans le même script que la fonction masquer. Le principe est de « réinitialiser » la valeur display de l'élément :
function afficher( id ) { document.getElementById(id).style.display = ''; };
Et comme tu ne peux pas mettre deux onclick sur le même élément, il te faudra un deuxième élément, ou alors une sorte de « mémoire ». Les checkbox sont pratiques pour ça car tu peux utiliser leur propriété checked. Là j'utilise l'objet this qui permet de repérer dynamiquement quel élément a été cliqué :
*** HTML *** <input type="checkbox" onclick="basculer(this, 'masque-moi')" /> *** JS *** function basculer( chkbox, id ) { if (chkbox.checked) { masquer(id); } else { afficher(id); }; };
Bon courage !