Afficher un résultat depuis plusieurs listes déroulantes
Posté : 08 févr. 2007, 13:18
Bonjour à tout le monde.
Je reviens vers vous afin d'aboutir l'une de mes réalisations, à savoir l'afichage d'un résultat à partir de plusieurs listes déroulantes.
Pour illustrer mon problème, rien de tel qu'une mise en situation.
Imaginez vous sur un site annuaire référencant des hébergements touristiques. Depuis un menu, vous cliquez sur l'onglet "hebergements" puis sur sur le sous menu "camping". Une page s'affiche alors sur laquelle 8 enregistrements de camping par page apparaissent. Comme il semble y avoir plusieurs pages, un filtre par ville est à votre disposition et vous permet alors de n'afficher que les campings pour telle ou telle ville. Un autre filtre est aussi disponible et vous permet de n'afficher que les campings ayant 1, 2, 3 ou 4étoiles selon votre séléction dans la liste déroulante.
J'ai déjà réussi à mettre en place ces deux filtres (grâce à Maitrepylos entre autre).
Vous avez même la possibilité sur les deux listes de choix, de faire réapparaitre tous les enregistrements en séléctionnant "afficher tous les campings".
Voici une représentation imagée de la page: http://develop.web.free.fr/ff.JPG
Néanmoins, je souhaiterais que les deux filtres, qui fonctionnent indépendamment l'un de l'autre, puissent fonctionner ensemble. Ainsi, une fois le filtre par ville activé, que l'on puisse filtrer les campings de cette ville par étoile, et inversement. Mais il faudrait aussi laisser la possibilité de ne filtrer qu'un seul critère (ville ou étoile) comme ce qui se passe actuellement.
A l'heure actuelle, je suis arrivé à deux résultats:
- soit je peux filtrer par ville ou par étoile mais pas les deux critères en même temps.
- soit je peux filtrer par ville "et" par étoile avec un seul bouton "ok" mais le filtre par ville seul ainsi que le filtre par étoile seul ne fonctionnent plus.
Voici le code que j'utilise avec les deux filtres valides mais fonctionnant indépendamment:
on m'a déjà parlé d'une forme comme celle-ci:
Merci par avance pour toute aide apportée.
Je reviens vers vous afin d'aboutir l'une de mes réalisations, à savoir l'afichage d'un résultat à partir de plusieurs listes déroulantes.
Pour illustrer mon problème, rien de tel qu'une mise en situation.
Imaginez vous sur un site annuaire référencant des hébergements touristiques. Depuis un menu, vous cliquez sur l'onglet "hebergements" puis sur sur le sous menu "camping". Une page s'affiche alors sur laquelle 8 enregistrements de camping par page apparaissent. Comme il semble y avoir plusieurs pages, un filtre par ville est à votre disposition et vous permet alors de n'afficher que les campings pour telle ou telle ville. Un autre filtre est aussi disponible et vous permet de n'afficher que les campings ayant 1, 2, 3 ou 4étoiles selon votre séléction dans la liste déroulante.
J'ai déjà réussi à mettre en place ces deux filtres (grâce à Maitrepylos entre autre).
Vous avez même la possibilité sur les deux listes de choix, de faire réapparaitre tous les enregistrements en séléctionnant "afficher tous les campings".
Voici une représentation imagée de la page: http://develop.web.free.fr/ff.JPG
Néanmoins, je souhaiterais que les deux filtres, qui fonctionnent indépendamment l'un de l'autre, puissent fonctionner ensemble. Ainsi, une fois le filtre par ville activé, que l'on puisse filtrer les campings de cette ville par étoile, et inversement. Mais il faudrait aussi laisser la possibilité de ne filtrer qu'un seul critère (ville ou étoile) comme ce qui se passe actuellement.
A l'heure actuelle, je suis arrivé à deux résultats:
- soit je peux filtrer par ville ou par étoile mais pas les deux critères en même temps.
- soit je peux filtrer par ville "et" par étoile avec un seul bouton "ok" mais le filtre par ville seul ainsi que le filtre par étoile seul ne fonctionnent plus.
Voici le code que j'utilise avec les deux filtres valides mais fonctionnant indépendamment:
mysql_select_db($database_conn_develop, $conn_develop);
if ($_POST['etoile']=='toutes') {
$query_rs_camping = "SELECT nom_etab, cp_etab, ville_etab, url_photo4, alt_photo1, date_ouverture, nb_etoile_camping, id_camping FROM tbl_etab, tbl_camping WHERE tbl_etab.etab_id=tbl_camping.id_etab";
} else {
if ($_POST['ville']=='toutes') {
$query_rs_camping = "SELECT nom_etab, cp_etab, ville_etab, url_photo4, alt_photo1, date_ouverture, nb_etoile_camping, id_camping FROM tbl_etab, tbl_camping WHERE tbl_etab.etab_id=tbl_camping.id_etab";
} elseif (isset($_POST['etoile'])) {
$query_rs_camping = "SELECT nom_etab, cp_etab, ville_etab, url_photo4, alt_photo1, date_ouverture, nb_etoile_camping, id_camping FROM tbl_etab, tbl_camping WHERE tbl_etab.etab_id=tbl_camping.id_etab AND nb_etoile_camping='".$_POST['etoile']."'";
} elseif (isset($_POST['ville'])) {
$query_rs_camping = "SELECT nom_etab, cp_etab, ville_etab, url_photo4, alt_photo1, date_ouverture, nb_etoile_camping, id_camping FROM tbl_etab, tbl_camping WHERE tbl_etab.etab_id=tbl_camping.id_etab AND ville_etab='".$_POST['ville']."'";
} else {
$query_rs_camping = "SELECT nom_etab, cp_etab, ville_etab, url_photo4, alt_photo1, date_ouverture, nb_etoile_camping, id_camping FROM tbl_etab, tbl_camping WHERE tbl_etab.etab_id=tbl_camping.id_etab";
}
}
En espérant avoir été assez clair, j'attend tout simplement un coup de pouce qui m'aiderait à comprendre la démarche à suivre.on m'a déjà parlé d'une forme comme celle-ci:
if (isset($_POST['ville']) && $_POST['etoile']){
$query_rs_camping = "SELECT nom_etab, cp_etab, ville_etab, url_photo4, alt_photo1, date_ouverture, nb_etoile_camping, id_camping FROM tbl_etab, tbl_camping WHERE tbl_etab.etab_id=tbl_camping.id_etab AND ville_etab='".$_POST['ville']."' AND nb_etoile_camping='".$_POST['etoile']."'";
Cela me semblait compréhensible mais après plusieurs tentatives, je n'arrive pas au résultat souhaité.Merci par avance pour toute aide apportée.