Liste déroulante cliquable

Résolu/Fermé
Ysabe_l Messages postés 12605 Date d'inscription vendredi 12 avril 2013 Statut Contributeur Dernière intervention 3 janvier 2025 - 12 avril 2013 à 14:40
Ysabe_l Messages postés 12605 Date d'inscription vendredi 12 avril 2013 Statut Contributeur Dernière intervention 3 janvier 2025 - 12 avril 2013 à 16:56
Bonjour,

Dans le cadre d'un stage je dois mettre en place sur un site un tri automatique de tableaux (générés en php à partir d'une base de données), un peu comme dans Excel. Donc je dois afficher la liste des valeurs disponibles pour un champ et faire en sorte que lors du clic la page change pour n'afficher que les entrées qui correspondent.

Après beaucoup de galères j'ai presque réussi. Je m'explique :

Les champs générés automatiquement sont bien cliquables.
Le clic recharge bien la page avec modification de l'URL.
Le tableau affiche bien les bonnes valeurs.
MAIS
Je ne peux pas revenir à "tout afficher" directement ce qui est un peu embêtant.

Je vous montre la partie de code correspondant :

<select onChange="location = this.options[this.selectedIndex].value;">
	<option value="principal.php">Tout afficher</option>
<?php
	while ($valeur = mysql_fetch_array($req_ident))
	{
		echo "<option value='principal.php?ident=".$valeur['ident']."&chorus=tout&typefour=tout'>".$valeur["ident"]."</option>\n";
	}
?>
</select>


Donc tout ce qui est dans le while fonctionne comme je veux mais le "tout afficher" ne fait rien du tout.

J'ai déjà essayé de l'écrire de différentes manières :
<option onClick="principal.php">Tout afficher</option>

<option onClick="principal.php?ident=tout&chorus=tout&typefour=tout">Tout afficher</option>

<option><a href="principal.php">Tout afficher</a></option>

<a href="principal.php"><option>Tout afficher</option></a>


J'ai du essayer d'autres trucs du même genre mais à chaque fois rien ne se passe, quand je clique dans ma liste sur "Tout afficher" la page ne se recharge pas.

Merci d'avance de votre aide !

Ysab_l

(au passage si quelqu'un pouvait me dire à quoi sert ce \n à la fin de la ligne echo ? c'est la personne qui a travaillé sur ce projet avant moi qui l'a mis, si je l'enlève ça ne change à priori rien, mais il doit bien avoir une raison d'être ?)



2 réponses

Rajoute <option></option> avant <option value="principal.php">Tout afficher</option>

Ton event c'est du "onChange", il faut que la valeur change pour qu'il soit déclencher, en mettant une valeur vide en premier tu est obligé de provoquer ce changement.

\n Ca veut dire revenir à la ligne. pas utile dans ce cas de figure tu peux le chuinter.
0
Ysabe_l Messages postés 12605 Date d'inscription vendredi 12 avril 2013 Statut Contributeur Dernière intervention 3 janvier 2025 276
12 avril 2013 à 14:57
Un million de fois merci Quo !

Je me prend la tête dessus depuis ce matin et effectivement en mettre un vide avant fonctionne parfaitement, et en plus avec ton explication j'ai compris pourquoi.

Bon je vais pouvoir attaquer le décrassage du code du coup et y'a du boulot, donc les \n je peux les virer.

Encore merci :)
0
De rien :)

N'oublie pas de marquer ta question comme Résolu
0
Ysabe_l Messages postés 12605 Date d'inscription vendredi 12 avril 2013 Statut Contributeur Dernière intervention 3 janvier 2025 276
12 avril 2013 à 16:56
Je cherche comment et je le fais ;)
0