IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

mise en memoire value du select


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    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 : 99
    Points : 38
    Points
    38
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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'>
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    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 : 99
    Points : 38
    Points
    38
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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>";

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($_POST['Marque']);
    pour contrôler ce que tu reçois du formulaire
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    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 : 99
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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)

  7. #7
    Invité
    Invité(e)
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
            $selected = ($selection == $id) ? ' selected="selected"' : '';
    $id est numérique, alors que $selection est.. une chaine (le nom de la marque) ?!

    Pourtant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
           $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...

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    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 : 99
    Points : 38
    Points
    38
    Par défaut
    voici mon code d origine et fonctionnel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  9. #9
    Invité
    Invité(e)
    Par défaut
    Ligne 14 : d'où vient $Marque ?
    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 !

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    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 : 99
    Points : 38
    Points
    38
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  11. #11
    Invité
    Invité(e)
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
           $option='<option value="' . $id . '"' . $selected . '>' . $label . '</option>';
    D'où incohérence.

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    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 : 99
    Points : 38
    Points
    38
    Par défaut
    voici mon select de ma page html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 />

  13. #13
    Invité
    Invité(e)
    Par défaut
    Dans ton message #3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?...

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    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 : 99
    Points : 38
    Points
    38
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  15. #15
    Invité
    Invité(e)
    Par défaut
    Donc, on n'a donc besoin que du "nom des marques".

    1/ si on part d'un array pour construire les options :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
           foreach($tablmarques as $marque)
            {
     
                    $selected = ($selection == $marque) ? ' selected="selected"' : '';
                    $option='<option value="' . $marque. '"' . $selected . '>' . $marque. '</option>';
            }

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    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 : 99
    Points : 38
    Points
    38
    Par défaut
    je rajoute ca a mon code php c est cela?

  17. #17
    Invité
    Invité(e)
    Par défaut
    Ca remplace cette partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    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 : 99
    Points : 38
    Points
    38
    Par défaut
    j ai fais ca ma ca m affiche pas ! c est vide

    j ai fais comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <select id="Marque" name="Marque" style="width: 150px; margin-bottom: 3px;" >
                        <?php include("rech.php"); echo $option; ?>

  19. #19
    Invité
    Invité(e)
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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...
    Dernière modification par Invité ; 13/12/2012 à 07h23.

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2011
    Messages
    99
    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 : 99
    Points : 38
    Points
    38
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    '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' ); ?>
    en enlevant le 1=> le code disparai mais j ai rien dans mon select

    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

Discussions similaires

  1. <img src="<xsl:value-of select="image"
    Par ToxiZz dans le forum XSL/XSLT/XPATH
    Réponses: 22
    Dernier message: 09/01/2006, 17h17
  2. Socket Mise en memoire d'un packet
    Par chacal dans le forum Développement
    Réponses: 4
    Dernier message: 29/11/2005, 19h06
  3. VALUES (...nombreux SELECTS...)
    Par DrSlump dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/03/2005, 09h50
  4. mise en forme d'un select
    Par mic79 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 25/01/2005, 17h04
  5. effectuer une requete insert avec 'values' ET 'select'
    Par delaio dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/08/2004, 19h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo