Question sur les VALUE d'une liste formulaire
Résolu
jourdanne85
Messages postés
27
Date d'inscription
Statut
Membre
Dernière intervention
-
jona303 Messages postés 369 Date d'inscription Statut Membre Dernière intervention -
jona303 Messages postés 369 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis en train de réaliser un site d'un garage automobile et j'ai besoin de faire un formulaire de recherche (MARQUE, MODELE,KILOMETRAGE,PRIX, etc.....).
Je l'ai donc créé grâce à différentes listes déroulantes qui sont complétés par la BDD de voitures du garage.
Pour chaque liste déroulante, j'ai créé une valeur en plus qui est sélectionnée par défaut afin de désigné chaque
liste au visiteur.
Mon problème vient de la valeur que je dois mettre à cette valeur par défaut.
En effet, je veux que si le visiteur ne sélectionne pas de marque de voiture par exemple, il ait dans sa recherche toutes les marques.
Mais je ne sais pas comment faire.
Voici un exemple du code pour mieux comprendre :
Partie du code du formulaire :
Partie du code de la page de réception de formulaire :
Je pensais au départ que le symbole * permettait de tout sélectionner mais ce n'est pas le cas.
Alors si quelqu'un a la solution, je le remercie par avance.
Je suis en train de réaliser un site d'un garage automobile et j'ai besoin de faire un formulaire de recherche (MARQUE, MODELE,KILOMETRAGE,PRIX, etc.....).
Je l'ai donc créé grâce à différentes listes déroulantes qui sont complétés par la BDD de voitures du garage.
Pour chaque liste déroulante, j'ai créé une valeur en plus qui est sélectionnée par défaut afin de désigné chaque
liste au visiteur.
Mon problème vient de la valeur que je dois mettre à cette valeur par défaut.
En effet, je veux que si le visiteur ne sélectionne pas de marque de voiture par exemple, il ait dans sa recherche toutes les marques.
Mais je ne sais pas comment faire.
Voici un exemple du code pour mieux comprendre :
Partie du code du formulaire :
<td width="173px"> <select name="marque" id="marque"> <option value="VALEUR POUR SELECTIONNER TOUTES LES MARQUES">MARQUE</option> <?php $reponse_marque = mysql_query("SELECT distinct marque FROM auto") or die(mysql_error()); while($marque = mysql_fetch_array($reponse_marque)) { echo '<option value="'.$marque['marque'].'">'.$marque['marque'].'</option>'; } ?> </select>
Partie du code de la page de réception de formulaire :
<?php include("biblio/connexion_bdd.php"); $carros = $_POST['carrosserie']; $marque = $_POST['marque']; $prix = $_POST['prix']; $energie = $_POST['energie']; $kilometrage = $_POST['kilometrage']; $liste = mysql_query("SELECT * FROM auto WHERE marque='$marque'"); while($voiture = mysql_fetch_array($liste)) { echo $voiture['carrosserie']; echo $voiture['modele']; echo $voiture['marque']; echo $voiture['prix']; echo $voiture['energie']; echo $voiture['kilometrage']; } ?>
Je pensais au départ que le symbole * permettait de tout sélectionner mais ce n'est pas le cas.
Alors si quelqu'un a la solution, je le remercie par avance.
A voir également:
- Question sur les VALUE d'une liste formulaire
- Whatsapp formulaire opposition - Guide
- Liste déroulante excel - Guide
- Formulaire de réclamation facebook - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
5 réponses
Salut,
* selectionne bien tous les champs de ta base,..
mais :
tu met une valeur par défaut plus simple genre "absent",
et au moment de faire ta requete un petit test:
if($marque=='absent') {
$liste = mysql_query("SELECT * FROM auto ");
}else {
$liste = mysql_query("SELECT * FROM auto WHERE marque='$marque'");
}
* selectionne bien tous les champs de ta base,..
mais :
tu met une valeur par défaut plus simple genre "absent",
et au moment de faire ta requete un petit test:
if($marque=='absent') {
$liste = mysql_query("SELECT * FROM auto ");
}else {
$liste = mysql_query("SELECT * FROM auto WHERE marque='$marque'");
}
Merci pour ta réponse, mais je pense qu'il y a un problème.
J'ai en tout 5 listes déroulantes : MARQUE, MODELE, PRIX, CARROSSERIE, KILOMETRAGE.
Le client peut très bien ne pas sélectionner de MARQUE ni de CARROSSERIE ni de KILOMETRAGE mais sélectionner
PRIX et MODELE. Les possibilités sont infinies, et je ne pense pas savoir faire ceci.
Par contre, tu me dis que le symbole * sélectionne tous les champs de la base.
J'ai donc essayer de mettre <option value="*">MARQUE</option> mais cela ne fonctionne pas.
La page de réception du formulaire reste toujours vide.
Peut-être que j'utilise mal le symbole * ???
J'ai en tout 5 listes déroulantes : MARQUE, MODELE, PRIX, CARROSSERIE, KILOMETRAGE.
Le client peut très bien ne pas sélectionner de MARQUE ni de CARROSSERIE ni de KILOMETRAGE mais sélectionner
PRIX et MODELE. Les possibilités sont infinies, et je ne pense pas savoir faire ceci.
Par contre, tu me dis que le symbole * sélectionne tous les champs de la base.
J'ai donc essayer de mettre <option value="*">MARQUE</option> mais cela ne fonctionne pas.
La page de réception du formulaire reste toujours vide.
Peut-être que j'utilise mal le symbole * ???
le * veut dire que tu prend tous les champs de ta table, si tu fais un SELECT `marque` ta requete ne renverra que ce qu'il y a dans le champ marque.
apres je creerai un string pour les where,.. style
$where='WHERE'
if ($_POST['marque']!='absent') {
$where.='`marque`="'.$_POST['marque'].'"';
}
if ($_POST['modele']!='absent') {
if ($where!=WHERE) {
$where.= ' AND ';
}
$where.='`modele`="'.$_POST['modele'].'"';
}
etc..
puis dans ta requete
mysql_query('SELECT * FROM `latable`'.$where);
tu peux aussi faire un foreach($_POST.....
mais ça rendra le truc plus complexe à coder
apres je creerai un string pour les where,.. style
$where='WHERE'
if ($_POST['marque']!='absent') {
$where.='`marque`="'.$_POST['marque'].'"';
}
if ($_POST['modele']!='absent') {
if ($where!=WHERE) {
$where.= ' AND ';
}
$where.='`modele`="'.$_POST['modele'].'"';
}
etc..
puis dans ta requete
mysql_query('SELECT * FROM `latable`'.$where);
tu peux aussi faire un foreach($_POST.....
mais ça rendra le truc plus complexe à coder
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question