Précédent   Forum du club des développeurs et IT Pro > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 11/12/2012, 23h13   #1
baddevil
Candidat au titre de Membre du Club
 
Homme
Technicien maintenance
Inscription : avril 2011
Messages : 62
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : avril 2011
Messages : 62
Points : 13
Points : 13
Par défaut mise en memoire value du select

bonsoir,
je galere depuis plusieur jours pour garder en memoire le value de mon select apres envoi du formulaire
j ai un menu deroulant ayant pour options des véhicules
avec mon code actuel j ecrase ma variable et garde en memoire la derniere option de mon select et non celle que j ai choisi

voici une partie de mon code php pour traiter le formulaire
Code :
1
2
3
4
5
6
7
 
if(isset($Marque) && !empty($Marque)  )
    { 
    $choix[] = "Marque = '$Marque'";
     $selected = ' selected="selected"';
     }
     else {$selected = "";}
si je fais un echo de $Marque cela me retourne bien la marque selectionné mais je n arrive pas a faire ma condition en fonction de celle ci

je traite ma page html par une autre page ou j ai mon php

en esperant que j ai été asser clair
merci d avance de votre aide
baddevil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 00h52   #2
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 471
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 471
Points : 21 278
Points : 21 278
Un exemple avec un tableau pour la construction de la liste mais les données peuvent venir d'une bdd c'est le même principe :

Code :
1
2
3
4
5
6
7
$selection = isset($_POST['liste']) ? $_POST['liste'] : '';
 
$tblChoix = array(1=>'choix1', 2=>'choix2',3=>'choix3');
foreach ($tblChoix as $id=>$label) {
    $selected = ($selection == $id) ? ' selected="selected ' : '';
    echo '<option value="' . $id . '"' . $selected . '>' . $label . '</option'>
}
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 17h06   #3
baddevil
Candidat au titre de Membre du Club
 
Homme
Technicien maintenance
Inscription : avril 2011
Messages : 62
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : avril 2011
Messages : 62
Points : 13
Points : 13
bonjour et merci pour ta réponse

le code que tu viens de me donner c est pour mettre directement dans ma page html ???

car j ai tester sur ma page ou j ai tout mon php mais j obtient le meme resultat qu avant l echo des options m affiche que la derniere option de la liste

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
$selection = isset($_POST['Marque']) ? $_POST['Marque'] : '';
    $tablmarque=array(
        1=>'Acura',2=>'Alfa',3=>'Audi',4=>'Austin',5=>'Autobianchi',6=>'BMW',7=>'Bugatti',8=>'Chrysler',9=>'Citroën',10=>'Dacia',
        10=>'Jaguar',11=>'Jeep',12=>'Lada',13=>'Lancia',14=>'MASERATI',15=>'MAZDA',16=>'Mercedes',17=>'MG',18=>'Mitsubishi',19=>'Nissan',
        20=>'Opel',21=>'Peugeot',22=>'Porsche',23=>'Renault',24=>'Rover',25=>'Seat',26=>'Skoda',27=>'Smart',28=>'Suzuki',29=>'Talbot',
        30=>'Toyota',31=>'Volkswagen',32=>'Volvo',33=>'Daewoo',34=>'Datsun',35=>'Ferrari',36=>'Fiat',37=>'Ford',38=>'Honda',39=>'Hyundai',40=>'Iveco');
 
        foreach($tablmarque as $id=>$label)
 
        $selected = ($selection == $id) ? ' selected="selected"' : '';
        $option='<option value="' . $id . '"' . $selected . '>' . $label . '</option>';
        echo "<font color=\"white\"> $option</font>";
baddevil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 17h26   #4
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 471
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 471
Points : 21 278
Points : 21 278
Fais un
Code :
var_dump($_POST['Marque']);
pour contrôler ce que tu reçois du formulaire
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 17h37   #5
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 651
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 651
Points : 7 531
Points : 7 531
Envoyer un message via Skype™ à jreaux62
Bonjour,
Code :
echo "<font color=\"white\"> $option</font>";
Depuis quand met-on les balises <option> dans des balises <font> ?
Et où sont les balises <select> ?

Tu comptes nous faire un striptease de ton code ? (nous en montrer juste un petit bout à chaque nouveau post ?
J'ai hâte de voir le prochain !
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 19h25   #6
baddevil
Candidat au titre de Membre du Club
 
Homme
Technicien maintenance
Inscription : avril 2011
Messages : 62
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : avril 2011
Messages : 62
Points : 13
Points : 13
Citation:
Envoyé par jreaux62 Voir le message
Bonjour,
Code :
echo "<font color=\"white\"> $option</font>";
Depuis quand met-on les balises <option> dans des balises <font> ?
Et où sont les balises <select> ?

Tu comptes nous faire un striptease de ton code ? (nous en montrer juste un petit bout à chaque nouveau post ?
J'ai hâte de voir le prochain !
pour le font desolé mais mon background est sombre je voyais pas bien et j ai pas réalisé sur le coup pour les options

ensuite j ai mis qu une partie du code car y a que cette parti qui me pose probleme ,mon bloc de recherche fonctionne tres bien autrement je veux juste garder les valeur pour facilité l utilisateur


Citation:
Envoyé par sabotage Voir le message
Fais un
Code :
var_dump($_POST['Marque']);
pour contrôler ce que tu reçois du formulaire
ce la me retourne la marque que j ai selectionné
ex: string 'Acura' (length=5)
baddevil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 19h38   #7
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 651
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 651
Points : 7 531
Points : 7 531
Envoyer un message via Skype™ à jreaux62
Question : comment se fait-il que tu récupères le nom de la marque ?!?
Citation:
Envoyé par baddevil Voir le message
cela me retourne la marque que j ai selectionné
ex: string 'Acura' (length=5)
Code :
        $selected = ($selection == $id) ? ' selected="selected"' : '';
$id est numérique, alors que $selection est.. une chaine (le nom de la marque) ?!

Pourtant :
Code :
       $option='<option value="' . $id . '"' . $selected . '>' . $label . '</option>';
Ici, la value est bien le $id.

C'est moi ou ton code qui est incohérent ?
Citation:
Envoyé par baddevil Voir le message
ensuite j ai mis qu une partie du code car y a que cette parti qui me pose probleme ,
Tu sembles bien sûr de toi...
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 19h52   #8
baddevil
Candidat au titre de Membre du Club
 
Homme
Technicien maintenance
Inscription : avril 2011
Messages : 62
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : avril 2011
Messages : 62
Points : 13
Points : 13
voici mon code d origine et fonctionnel
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
 
if (isset($_POST['action'])) // si le formulaire est soumis on stocke les paramètres dans la session
 
   $_SESSION['critere'] = $_POST;
 
 
if(isset($_SESSION['critere'])) // condition tant que le visiteur n'a encore pas touché aux critères et que donc $_SESSION['criteres'] n'existe pas, on ne peut pas extraire les paramètres
   extract($_SESSION['critere']);// extraction des critères de recherche
 
          $choix = array(); 
                 // si la variable est présente, on lui affecte une place dans le tableau 'choix[]', qui nous servira ensuite à construire le WHERE de la requête.
 
    // ajout du isset car tant qu'on a pas choisi de critère, on ne peut pas les extraires et donc la variable n'existe pas             
    if(isset($Marque) && !empty($Marque) )
 
      $choix[] = "Marque = '$Marque'";
 
     /* {
        if(isset ($Marque)== 'Acura')
          {
          $sel1='selected="selected"';
          }
        else
          {
          $sel1="";
          } 
      } */
 
 
 
 
   if(isset($Energie) && !empty($Energie))
   $choix[] = "Energie = '$Energie'";
 
 
   if(isset($prix_mini) && !empty($prix_mini))
   {$choix[] = "Prix_public >= '$prix_mini'";
 
      $sel3=$prix_mini;
 
      }  
    else
      {
      $sel3="";
      }
 
   if(isset($prix_maxi) && !empty($prix_maxi))
   {$choix[] = "Prix_public <=  '$prix_maxi'";
   $sel4=$prix_maxi;
 
      }  
    else
      {
      $sel4="";
      }
 
 
   if(isset($kilometrage_mini) && !empty($kilometrage_mini))
   {$choix[] = "Kilometrage >= '$kilometrage_mini'";
   $sel5=$kilometrage_mini;
 
      }  
    else
      {
      $sel5="";
      }
 
   if(isset($kilometrage_maxi) && !empty($kilometrage_maxi))
   {$choix[] = "Kilometrage <= '$kilometrage_maxi'";
   $sel6=$kilometrage_maxi;
 
      }  
    else
      {
      $sel6="";
      }
 
   if(isset($annee_min) && !empty($annee_min))
   $choix[] = "Millesime >= '$annee_min'";
 
 
   if(isset($annee_max) && !empty($annee_max))
   $choix[] = "Millesime <= '$annee_max'";
 
 
 
 
                   $critere = implode(' AND ', $choix);
j ai juste rajouté le code sabotage pour voir ce que ca donnait

mon 1 er post avec le code c est lui qui me retourne la marque que je selectionne
baddevil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 19h57   #9
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 651
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 651
Points : 7 531
Points : 7 531
Envoyer un message via Skype™ à jreaux62
Ligne 14 : d'où vient $Marque ?
Citation:
if(isset($Marque) && !empty($Marque) )
Manifestement, c'est lui qui renvoit "acura"...

Si tu négliges de donner des informations essentielles, on ne risque pas te trouver une solution.

Ce n'est plus du striptease, c'est du burlesque !
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 20h08   #10
baddevil
Candidat au titre de Membre du Club
 
Homme
Technicien maintenance
Inscription : avril 2011
Messages : 62
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : avril 2011
Messages : 62
Points : 13
Points : 13
Citation:
Envoyé par jreaux62 Voir le message
Ligne 14 : d'où vient $Marque ?

Manifestement, c'est lui qui renvoit "acura"...

Si tu négliges de donner des informations essentielles, on ne risque pas te trouver une solution.

Ce n'est plus du striptease, c'est du burlesque !
il y a un commentaire au dessus
// ajout du isset car tant qu'on a pas choisi de critère, on ne peut pas les extraires et donc la variable n'existe pas

je suis pas un pro en php et ne sert a rien de prendre de haut ,je cherche a comprendre ,

je l ai mis dans mon premier post ce bout de code

Code :
1
2
3
 
if(isset($Marque) && !empty($Marque)  )
$choix[] = "Marque = '$Marque'";
alors ou j ai négligé les infos?
ce code me renvoi ma marque je souhaitai juste a partir de la faire une condition pour quel soit garder en memoire avec un selected
baddevil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 20h47   #11
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 651
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 651
Points : 7 531
Points : 7 531
Envoyer un message via Skype™ à jreaux62
La donnée qui manque , c'est le bout de code :
<select name="Marque"... >

1/ Puisque $Marque est censé récupérer la valeur (value) de ce select.
2/ Et que les <option> sont, si j'ai bien compris, ceux de CE select.

1/ Or, $Marque affiche le "label" ("acura"),
2/ alors qu'il est censé afficher l'"id"
Code :
       $option='<option value="' . $id . '"' . $selected . '>' . $label . '</option>';
D'où incohérence.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 21h07   #12
baddevil
Candidat au titre de Membre du Club
 
Homme
Technicien maintenance
Inscription : avril 2011
Messages : 62
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : avril 2011
Messages : 62
Points : 13
Points : 13
voici mon select de ma page html

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
<form method="post" name="form" action="rech.php" id="formulaire">
								<input type="hidden" name="action" value="charge">
					<table>
            <tr>
              <td >			
								<p>Rechercher un vehicule :</p>
                <div style="width: 200px;">
								<select id="Marque" name="Marque" style="width: 150px; margin-bottom: 3px;" >
 
									  <option value="" >--- Marque ---</option>
                        <option value="Acura" >Acura</option>
                   			<option value="Alfa" >Alfa</option>
                  			<option value="Audi">Audi</option>
                  			<option value="Austin" >Austin</option>
						            <option value="Autobianchi" >Autobianchi</option>
						            <option value="BMW" >BMW</option>
							          <option value="Bugatti" >Bugatti</option>
                  			<option value="Chrysler" >Chrysler</option>
                  			<option value="Citroën"  >Citroën</option>
                  			<option value="Dacia" >Dacia</option>
                  			<option value="Daewoo" >Daewoo</option>
                        <option value="Datsun" >Datsun</option>
                        <option value="Ferrari" >Ferrari</option>
                        <option value="Fiat" >Fiat</option>
                        <option value="Ford" >Ford</option>
                        <option value="Honda" >Honda</option>
                        <option value="Hyundai" >Hyundai</option>
                        <option value="Iveco" >Iveco</option>
                        <option value="Jaguar" >Jaguar</option>
                        <option value="Jeep" >Jeep</option>
                        <option value="Lada" >Lada</option>
                        <option value="Lancia" >Lancia</option>
                        <option value="MASERATI" >MASERATI</option>
                        <option value="MAZDA" >MAZDA</option>
                        <option value="Mercedes" >Mercedes</option>
                        <option value="MG" >MG</option>
                        <option value="Mitsubishi" >Mitsubishi</option>
                        <option value="Nissan" >Nissan</option>
                        <option value="Opel" >Opel</option>
                        <option value="Peugeot">Peugeot</option>
                        <option value="Porsche" >Porsche</option>
                        <option value="Renault" >Renault</option>
                        <option value="Rover" >Rover</option>
                        <option value="Seat" >Seat</option>
                        <option value="Skoda" >Skoda</option>
                        <option value="Smart" >Smart</option>
                        <option value="Suzuki" >Suzuki</option>
                        <option value="Talbot" >Talbot</option>
                        <option value="Toyota" >Toyota</option>
                        <option value="Volkswagen" >Volkswagen</option>
                        <option value="Volvo" >Volvo</option>
                        							</select><br />
baddevil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 21h41   #13
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 651
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 651
Points : 7 531
Points : 7 531
Envoyer un message via Skype™ à jreaux62
Dans ton message #3 :
Code :
1
2
3
    $tablmarque=array(
        1=>'Acura',2=>'Alfa',3=>'Audi',4=>'Austin',5=>'Autobianchi',6=>'BMW',7=>'Bugatti',8=>'Chrysler',9=>'Citroën',10=>'Dacia',.....
        $option='<option value="' . $id . '"' . $selected . '>' . $label . '</option>';
Et dans celui ci-dessus #12 :
Code :
1
2
3
4
5
                        <option value="Acura" >Acura</option>
                   			<option value="Alfa" >Alfa</option>
                  			<option value="Audi">Audi</option>
                  			<option value="Austin" >Austin</option>
.......
Ce n'est pas pour être désagréable, mais "Y'A COMME UNE EMBROUILLE !
Et c'est justement là que se situe l'incohérence !

Il faudrait maintenant savoir VRAIMENT si le VALUE est l'ID (#3, 1er script) ou le NOM (#12, 2ème script) ?!?
En clair : à quel script doit-on se fier ?

Et si, comme je pense, c'est le 2ème, COMMENT est écrite cette liste d'<option> ?
- en dur ?
- en PHP ? depuis une base de données ? un array ?...
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 22h53   #14
baddevil
Candidat au titre de Membre du Club
 
Homme
Technicien maintenance
Inscription : avril 2011
Messages : 62
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : avril 2011
Messages : 62
Points : 13
Points : 13
je n utilisais pas le select html de mon code dessous quand j essayai le code de sabotage j avais mis en commentaire le temps d essayer biensur
alors je recommence de zero et cela sans le code de sabotage car ca mélange tout

alors maintenant je souhaite avec le code suivant...

mon code html
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
<form method="post" name="form" action="rech.php" id="formulaire">
								<input type="hidden" name="action" value="charge">
					<table>
            <tr>
              <td >			
								<p>Rechercher un vehicule :</p>
                <div style="width: 200px;">
								<select id="Marque" name="Marque" style="width: 150px; margin-bottom: 3px;" >
 
									  <option value="" >--- Marque ---</option>
                        <option value="Acura" >Acura</option>
                   			<option value="Alfa" >Alfa</option>
                  			<option value="Audi">Audi</option>
                  			<option value="Austin" >Austin</option>
						            <option value="Autobianchi" >Autobianchi</option>
						            <option value="BMW" >BMW</option>
							          <option value="Bugatti" >Bugatti</option>
                  			<option value="Chrysler" >Chrysler</option>
                  			<option value="Citroën"  >Citroën</option>
                  			<option value="Dacia" >Dacia</option>
                  			<option value="Daewoo" >Daewoo</option>
                        <option value="Datsun" >Datsun</option>
                        <option value="Ferrari" >Ferrari</option>
                        <option value="Fiat" >Fiat</option>
                        <option value="Ford" >Ford</option>
                        <option value="Honda" >Honda</option>
                        <option value="Hyundai" >Hyundai</option>
                        <option value="Iveco" >Iveco</option>
                        <option value="Jaguar" >Jaguar</option>
                        <option value="Jeep" >Jeep</option>
                        <option value="Lada" >Lada</option>
                        <option value="Lancia" >Lancia</option>
                        <option value="MASERATI" >MASERATI</option>
                        <option value="MAZDA" >MAZDA</option>
                        <option value="Mercedes" >Mercedes</option>
                        <option value="MG" >MG</option>
                        <option value="Mitsubishi" >Mitsubishi</option>
                        <option value="Nissan" >Nissan</option>
                        <option value="Opel" >Opel</option>
                        <option value="Peugeot">Peugeot</option>
                        <option value="Porsche" >Porsche</option>
                        <option value="Renault" >Renault</option>
                        <option value="Rover" >Rover</option>
                        <option value="Seat" >Seat</option>
                        <option value="Skoda" >Skoda</option>
                        <option value="Smart" >Smart</option>
                        <option value="Suzuki" >Suzuki</option>
                        <option value="Talbot" >Talbot</option>
                        <option value="Toyota" >Toyota</option>
                        <option value="Volkswagen" >Volkswagen</option>
                        <option value="Volvo" >Volvo</option>
                        							</select><br />
et mon code php qui traite mon formulaire de ci dessus

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
 
 
  if (isset($_POST['action'])) // si le formulaire est soumis on stocke les paramètres dans la session
 
   $_SESSION['critere'] = $_POST;
 
 
if(isset($_SESSION['critere'])) // condition tant que le visiteur n'a encore pas touché aux critères et que donc $_SESSION['criteres'] n'existe pas, on ne peut pas extraire les paramètres
   extract($_SESSION['critere']);// extraction des critères de recherche
 
          $choix = array(); 
                 // si la variable est présente, on lui affecte une place dans le tableau 'choix[]', qui nous servira ensuite à construire le WHERE de la requête.
 
    // ajout du isset car tant qu'on a pas choisi de critère, on ne peut pas les extraires et donc la variable n'existe pas             
    if(isset($Marque) && !empty($Marque) )
 
      $choix[] = "Marque = '$Marque'";
 
     /* {
        if(isset ($Marque)== 'Acura')
          {
          $sel1='selected="selected"';
          }
        else
          {
          $sel1="";
          } 
      } */
 
 
 
 
   if(isset($Energie) && !empty($Energie))
   $choix[] = "Energie = '$Energie'";
 
 
   if(isset($prix_mini) && !empty($prix_mini))
   {$choix[] = "Prix_public >= '$prix_mini'";
 
      $sel3=$prix_mini;
 
      }  
    else
      {
      $sel3="";
      }
 
   if(isset($prix_maxi) && !empty($prix_maxi))
   {$choix[] = "Prix_public <=  '$prix_maxi'";
   $sel4=$prix_maxi;
 
      }  
    else
      {
      $sel4="";
      }
 
 
   if(isset($kilometrage_mini) && !empty($kilometrage_mini))
   {$choix[] = "Kilometrage >= '$kilometrage_mini'";
   $sel5=$kilometrage_mini;
 
      }  
    else
      {
      $sel5="";
      }
 
   if(isset($kilometrage_maxi) && !empty($kilometrage_maxi))
   {$choix[] = "Kilometrage <= '$kilometrage_maxi'";
   $sel6=$kilometrage_maxi;
 
      }  
    else
      {
      $sel6="";
      }
 
   if(isset($annee_min) && !empty($annee_min))
   $choix[] = "Millesime >= '$annee_min'";
 
 
   if(isset($annee_max) && !empty($annee_max))
   $choix[] = "Millesime <= '$annee_max'";
 
 
 
 
                   $critere = implode(' AND ', $choix);
 
 
 
                  if ($critere == "")
                   {
 
      	               header("Location: index.php");
 
                   }
                else
 
                   {      
 
 
              //création de la requete
              $requete= "select * ,date_format(Mec, '%d/%m/%Y') AS MeC from autotran WHERE $critere ";
              $resultat=mysql_query($requete);
donc voila mon code tel qu il est a l origine et a partir de ca que je souhaite garder mon selected en memoire
baddevil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 23h19   #15
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 651
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 651
Points : 7 531
Points : 7 531
Envoyer un message via Skype™ à jreaux62
Donc, on n'a donc besoin que du "nom des marques".

1/ si on part d'un array pour construire les options :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
    $tablmarques = array(
'Acura',
'Alfa',
'Audi',
'Austin',
'Autobianchi',
'BMW',
'Bugatti',
'Chrysler',
'Citroën',
.........
'Volvo'
);
Alors le code sera :
Code :
1
2
3
4
5
6
       foreach($tablmarques as $marque)
        {
 
                $selected = ($selection == $marque) ? ' selected="selected"' : '';
                $option='<option value="' . $marque. '"' . $selected . '>' . $marque. '</option>';
        }
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 23h52   #16
baddevil
Candidat au titre de Membre du Club
 
Homme
Technicien maintenance
Inscription : avril 2011
Messages : 62
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : avril 2011
Messages : 62
Points : 13
Points : 13
je rajoute ca a mon code php c est cela?
baddevil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 23h56   #17
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 651
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 651
Points : 7 531
Points : 7 531
Envoyer un message via Skype™ à jreaux62
Ca remplace cette partie :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
                       <option value="Acura" >Acura</option>
                   			<option value="Alfa" >Alfa</option>
                  			<option value="Audi">Audi</option>
                  			<option value="Austin" >Austin</option>
						            <option value="Autobianchi" >Autobianchi</option>
						            <option value="BMW" >BMW</option>
							          <option value="Bugatti" >Bugatti</option>
                  			<option value="Chrysler" >Chrysler</option>
                  			<option value="Citroën"  >Citroën</option>
                  			<option value="Dacia" >Dacia</option>
                  			<option value="Daewoo" >Daewoo</option>
                        <option value="Datsun" >Datsun</option>
                        <option value="Ferrari" >Ferrari</option>
                        <option value="Fiat" >Fiat</option>
                        <option value="Ford" >Ford</option>
                        <option value="Honda" >Honda</option>
                        <option value="Hyundai" >Hyundai</option>
                        <option value="Iveco" >Iveco</option>
                        <option value="Jaguar" >Jaguar</option>
                        <option value="Jeep" >Jeep</option>
                        <option value="Lada" >Lada</option>
                        <option value="Lancia" >Lancia</option>
                        <option value="MASERATI" >MASERATI</option>
                        <option value="MAZDA" >MAZDA</option>
                        <option value="Mercedes" >Mercedes</option>
                        <option value="MG" >MG</option>
                        <option value="Mitsubishi" >Mitsubishi</option>
                        <option value="Nissan" >Nissan</option>
                        <option value="Opel" >Opel</option>
                        <option value="Peugeot">Peugeot</option>
                        <option value="Porsche" >Porsche</option>
                        <option value="Renault" >Renault</option>
                        <option value="Rover" >Rover</option>
                        <option value="Seat" >Seat</option>
                        <option value="Skoda" >Skoda</option>
                        <option value="Smart" >Smart</option>
                        <option value="Suzuki" >Suzuki</option>
                        <option value="Talbot" >Talbot</option>
                        <option value="Toyota" >Toyota</option>
                        <option value="Volkswagen" >Volkswagen</option>
                        <option value="Volvo" >Volvo</option>
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 00h02   #18
baddevil
Candidat au titre de Membre du Club
 
Homme
Technicien maintenance
Inscription : avril 2011
Messages : 62
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : avril 2011
Messages : 62
Points : 13
Points : 13
j ai fais ca ma ca m affiche pas ! c est vide

j ai fais comme ceci

Code :
1
2
3
 
<select id="Marque" name="Marque" style="width: 150px; margin-bottom: 3px;" >
                    <?php include("rech.php"); echo $option; ?>
baddevil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 07h11   #19
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 651
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 651
Points : 7 531
Points : 7 531
Envoyer un message via Skype™ à jreaux62
1/ Liste des marques : dans un array
=> Peut être mis n'importe où dans le fichier, AVANT le select.
(tout en haut de fichier par exemple, avant la balise <html>)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php		// Liste des marques : dans un array
			$marques_array = array(
				1 => 'Acura',
					'Alfa',
					'Audi',
					'Austin',
					'Autobianchi',
					'BMW',
					'Bugatti',
					'Chrysler',
					'Citroën',
					'Dacia',
					'Daewoo',
					'Datsun',
					'Ferrari',
					'Fiat',
					'Ford',
					'Honda',
					'Hyundai',
					'Iveco',
					'Jaguar',
					'Jeep',
					'Lada',
					'Lancia',
					'Maserati',
					'Mazda',
					'Mercedes',
					'MG',
					'Mitsubishi',
					'Nissan',
					'Opel',
					'Peugeot',
					'Porsche',
					'Renault',
					'Rover',
					'Seat',
					'Skoda',
					'mart',
					'Suzuki',
					'Talbot',
					'Toyota',
					'Volkswagen',
					'Volvo'
					);
?>
2/ Formulaire, <select> des marques : on se sert du tableau (array) des marques pour construire les <option>.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<form method="post" name="form" action="rech.php" id="formulaire">
	<input type="hidden" name="action" value="charge" />
	<p>
		<label for="Marque">Rechercher un vehicule :</label>
		<select id="Marque" name="Marque" style="width:150px;">
			<option value="" selected="selected">--- Marque ---</option>
<?php		// écriture des options du select
			foreach($marques_array as $marque_nom)
			{
			// (option sélectionnée) ? oui : non;
			$selected = ($Marque == $marque_nom) ? ' selected="selected"' : '';
			$option='<option value="' . $marque_nom. '"' . $selected . '>' . $marque_nom. '</option>';
			}
?>
		</select>
	</p>
	<p>
		<!-- AUTRES SELECT, INPUT,... -->
	</p>
	<p>
		<input type="submit" value="OK" />
	</p>
</form>
3/ Récupération des données du formulaire (rech.php) :
En général, le code PHP de récupération/traitement se met tout en haut du fichier, avant la balise <html>.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
// si le formulaire est soumis on stocke les paramètres dans la session
if (isset($_POST['action']))
{
	$_SESSION['critere'] = $_POST;
}
 
if(isset($_SESSION['critere']))
{
	// condition tant que le visiteur n'a encore pas touché aux critères et que donc $_SESSION['criteres'] n'existe pas, on ne peut pas extraire les paramètres
	extract($_SESSION['critere']); // extraction des critères de recherche
 
	$choix = array(); 
	// si la variable est présente, on lui affecte une place dans le tableau 'choix[]', qui nous servira ensuite à construire le WHERE de la requête.
	// !empty() signifie : la variable existe (isset) et n'est pas vide (pas 0, pas '',pas NULL, ...)
 
	// Récupération : Marque
	if(!empty($Marque)){ 
		$choix[] = "Marque = '" . mysql_real_escape_string($Marque) . "'"; // mysql_real_escape_string() = PROTECTION contre injection SQL
	}
	// Récupération : Energie
	if(!empty($Energie)){
		$choix[] = "Energie = '" . mysql_real_escape_string($Energie) . "'";
	}
	// Récupération : prix_mini
	if(!empty($prix_mini)){
		$choix[] = "Prix_public >= '" . intval($prix_mini) . "'";
		$sel3 = $prix_mini;
	} else {
		$sel3 = "";
	}
	// Récupération : prix_maxi
	if(!empty($prix_maxi)){
		$choix[] = "Prix_public <= '" . intval($prix_maxi) . "'";
		$sel4 = $prix_maxi;
	} else {
		$sel4 = "";
	}
	// Récupération : kilometrage_mini
	if(!empty($kilometrage_mini)){
		$choix[] = "Kilometrage >= '" . intval($kilometrage_mini) . "'";
		$sel5 = $kilometrage_mini;
	} else {
		$sel5 = "";
	}
	// Récupération : kilometrage_maxi
	if(!empty($kilometrage_maxi)){
		$choix[] = "Kilometrage <= '" . intval($kilometrage_maxi) . "'";
		$sel6 = $kilometrage_maxi;
	} else {
		$sel6 = "";
	}
	// Récupération : annee_min
	if(!empty($annee_min)){
		$choix[] = "Millesime >= '" . intval($annee_min) . "'";
	}
	// Récupération : annee_min
	if(!empty($annee_max)){
		$choix[] = "Millesime <= '" . intval($annee_max) . "'";
	}
	// concaténation des critères, pour créer le WHERE de la requête
	$critere = (is_array($choix) && !empty($choix))? " WHERE " . implode(" AND ", $choix) : "";
	if ($critere == "")
	{
		header("Location: index.php"); // ?????
	} else {      
		//création de la requete
		$requete = "SELECT * ,date_format(Mec, '%d/%m/%Y') AS MeC FROM autotran " . $critere .";";
		$resultat = mysql_query($requete);
	}
?>
N.B. Comme tu as une base de données, je te parlerai bien :
- d'erreur de conception générale ;
- de construction de la liste des marques via la base de données (tables des marques, avec les champs 'id' auto-incrément, 'nom') ;
- de transmission de l'id (unique) de la marque plutôt que du nom ;
mais j'aurais peur de t'embrouiller...
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 16h13   #20
baddevil
Candidat au titre de Membre du Club
 
Homme
Technicien maintenance
Inscription : avril 2011
Messages : 62
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Technicien maintenance
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : avril 2011
Messages : 62
Points : 13
Points : 13
bonjour et merci de ta réponse

j ai fais donc ce que tu m as expliqué

cependant j ai tout le code php qui s affiche dans ma page html a partir de 'acura'
Code :
1
2
 
'Acura', 'Alfa', 'Audi', 'Austin', 'Autobianchi', 'BMW', 'Bugatti', 'Chrysler', 'Citro&#65533;n', 'Dacia', 'Daewoo', 'Datsun', 'Ferrari', 'Fiat', 'Ford', 'Honda', 'Hyundai', 'Iveco', 'Jaguar', 'Jeep', 'Lada', 'Lancia', 'Maserati', 'Mazda', 'Mercedes', 'MG', 'Mitsubishi', 'Nissan', 'Opel', 'Peugeot', 'Porsche', 'Renault', 'Rover', 'Seat', 'Skoda', 'mart', 'Suzuki', 'Talbot', 'Toyota', 'Volkswagen', 'Volvo' ); ?>
en enlevant le 1=> le code disparai mais j ai rien dans mon select

Citation:
N.B. Comme tu as une base de données, je te parlerai bien :
- d'erreur de conception générale ;
- de construction de la liste des marques via la base de données (tables des marques, avec les champs 'id' auto-incrément, 'nom') ;
- de transmission de l'id (unique) de la marque plutôt que du nom ;
mais j'aurais peur de t'embrouiller...
ma base de données a partir d info que l on ma données je ne peux en changé
elle se met a jour via un fichiet texte avec ; pour les séparation genre csv

ensuite étant débutant c est sur ca ne doit pas etre fais comme il le faudrai j en suis conscient
je te remercie dans tout les cas de ton aide
baddevil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h51.


 
 
 
 
Partenaires

Hébergement Web