Aller au contenu

Probleme de formulaire en PHP/HTML


NiTrOuS

Messages recommandés

Bon voilà, je suis sur un projet là, c'est un site qui vend des voitures d'occasion. J'ai une table voiture avec les champs marque,modele,...

J'ai fait un formulaire avec un SELECT pour la marque qui va chercher dans ma base de données les différentes marques qui sont en magasin. Genre il ne va pas afficher CITROEN dans les choix si il n y a pas de citroen en magasin.

Mon probleme, c est que quand je selectionne la marque par exemple, je voudrais que ca s actualise tout seul dans devoir cliquer sur un bouton et que ca me garde la valeur choisie dans le SELECT marque ... Quand je selectionne une marque, ca me donne les modeles disponiles dans cette marque.

En résumé, mon probleme:

j'arrive sur mon formulaire, j ai un champ marque et un champ modele. Dans mon SELECT marque, par defaut c est AUDI la premiere marque. Si je veux changer et choisir CITROEN par exemple, je dois cliquer sur le bouton envoyer pour que ca s actualise. Deja ca je voudrais changer, je voudrais que ca soit automatique quand je clique sur CITROEN. Ensuite, quand je clique sur le bouton envoyer donc, j ai bien les modeles de la marque CITROEN mais dans mon SELECT marque, c est AUDI qui revient :(

Voici mon code:

<?php
include('connect.php');
if(@isset($_GET['submit']))
{
$prix1=@$_GET[select2];
$prix2=@$_GET[select3];
if($prix1>$prix2)
{
$prixtemp=$prix1;
$prix1=$prix2;
$prix2=$prixtemp;
}
$puissance1=@$_GET[select4];
$puissance2=@$_GET[select5];
if($puissance1>$puissance2)
{
$puissancetemp=$puissance1;
$puissance1=$puissance2;
$puissance2=$puissancetemp;
}
$annee1=@$_GET[select6];
$annee2=@$_GET[select7];
if($annee1>$annee2)
{
$anneetemp=$annee1;
$annee1=$annee2;
$annee2=$anneetemp;
}
@$query="SELECT * FROM voiture WHERE marque='$_GET[marque]' AND modele='$_GET[modele]' AND carburant='$_GET[select]' AND prix_de_vente BETWEEN '$prix1' AND '$prix2' AND puissance BETWEEN '$puissance1' AND '$puissance2' AND annee BETWEEN '$annee1' AND '$annee2'";
$result=@pg_exec($cnx,$query);
if(!$result)
{
echo("Erreur");
exit();
}
if($result)
{
$i=0;
while($liste=@pg_fetch_array($result,$i++))
{
echo("<br>ID de la voiture: $liste[id_voiture] Marque: $liste[marque] Modèle: $liste[modele] Année: $liste[annee] Kilométrage: $liste[kilometrage] Carburant: $liste[carburant] Cylindrée: $liste[cylindree] Puissance: $liste[puissance] Couleur: $liste[couleur] Prix: $liste[prix_de_vente]<br>");
}
}
}
?>
<FORM METHOD=GET ACTION="<?$_SERVER['PHP_SELF']?>">
   <TABLE ALIGN=CENTER BORDER width="261">
     <TR>
       <TD width="69">Marque: </TD>
       <TD width="176"> 
<?php include('connect.php');
$query="SELECT DISTINCT marque FROM voiture";
$result=pg_exec($cnx,$query);
?>
<SELECT NAME=marque>
<?php
$i=0;
while($liste=@pg_fetch_array($result,$i++))
{
echo("<OPTION VALUE=$liste[marque]>$liste[marque]</OPTION>");
}
?>
</SELECT>
</TD>
</TR>
<TR>
       <TD width="69">Modèle: </TD>
       <TD width="176">
<?php include('connect.php');
@$query="SELECT DISTINCT modele FROM voiture WHERE marque='$_GET[marque]'";
$result=pg_exec($cnx,$query);
?>
<SELECT NAME=modele>
<?php
$i=0;
while($liste=@pg_fetch_array($result,$i++))
{
echo("<OPTION VALUE=$liste[modele]>$liste[modele]</OPTION>");
}
?>
</SELECT></TD>
</TR>
<TR>
       <TD width="69">Carburant:</TD>
       <TD width="176"> 
         <select name="select">
           <option value="Diesel" selected>Diesel</option>
           <option value="Essence">Essence</option>
           <option value="LPG">LPG</option>
           <option value="Electricite">Electricite</option>
         </select>
       </TD>
</TR>
<TR>
       <TD width="69">Prix:</TD>
       <TD width="176"> 
         <select name="select2">
           <option value="0" selected>de</option>
           <option value="500">€ 500</option>
           <option value="1000">€ 1.000</option>
           <option value="1500">€ 1.500</option>
           <option value="2000">€ 2.000</option>
           <option value="2500">€ 2.500</option>
           <option value="3000">€ 3.000</option>
           <option value="3500">€ 3.500</option>
           <option value="4000">€ 4.000</option>
           <option value="5000">€ 5.000</option>
           <option value="6000">€ 6.000</option>
           <option value="7000">€ 7.000</option>
           <option value="8000">€ 8.000</option>
           <option value="9000">€ 9.000</option>
           <option value="10000">€ 10.000</option>
           <option value="12500">€ 12.500</option>
           <option value="15000">€ 15.000</option>
           <option value="17500">€ 17.500</option>
           <option value="20000">€ 20.000</option>
           <option value="25000">€ 25.000</option>
           <option value="30000">€ 30.000</option>
           <option value="40000">€ 40.000</option>
           <option value="50000">€ 50.000</option>
           <option value="75000">€ 75.000</option>
           <option value="100000">€ 100.000</option>
           <option value="0">tous</option>
         </select>
         <select name="select3">
           <option value="999999" selected>à</option>
           <option value="500">€ 500</option>
           <option value="1000">€ 1.000</option>
           <option value="1500">€ 1.500</option>
           <option value="2000">€ 2.000</option>
           <option value="2500">€ 2.500</option>
           <option value="3000">€ 3.000</option>
           <option value="3500">€ 3.500</option>
           <option value="4000">€ 4.000</option>
           <option value="5000">€ 5.000</option>
           <option value="6000">€ 6.000</option>
           <option value="7000">€ 7.000</option>
           <option value="8000">€ 8.000</option>
           <option value="9000">€ 9.000</option>
           <option value="10000">€ 10.000</option>
           <option value="12500">€ 12.500</option>
           <option value="15000">€ 15.000</option>
           <option value="17500">€ 17.500</option>
           <option value="20000">€ 20.000</option>
           <option value="25000">€ 25.000</option>
           <option value="30000">€ 30.000</option>
           <option value="40000">€ 40.000</option>
           <option value="50000">€ 50.000</option>
           <option value="75000">€ 75.000</option>
           <option value="100000">€ 100.000</option>
           <option value="999999">tous</option>
         </select>
       </TD>
</TR>
<TR>
       <TD width="69">Puissance:</TD>
       <TD width="176"> 
         <select name="select4">
           <option value="0" selected>de</option>
           <option value="60">60 CH</option>
           <option value="75">75 CH</option>
           <option value="90">90 CH</option>
           <option value="110">110 CH</option>
           <option value="125">125 CH</option>
           <option value="150">150 CH</option>
           <option value="200">200 CH</option>
           <option value="250">250 CH</option>
           <option value="0">tous</option>
         </select>
         <select name="select5">
           <option value="999" selected>à</option>
           <option value="60">60 CH</option>
           <option value="75">75 CH</option>
           <option value="90">90 CH</option>
           <option value="110">110 CH</option>
           <option value="125">125 CH</option>
           <option value="150">150 CH</option>
           <option value="200">200 CH</option>
           <option value="250">250 CH</option>
           <option value="999">tous</option>
         </select>
       </TD>
</TR>
<TR>
       <TD width="69">Année:</TD>
       <TD width="176"> 
         <select name="select6">
           <option value="0" selected>de</option>
           <option value="1910">1910</option>
           <option value="1920">1920</option>
           <option value="1930">1930</option>
           <option value="1940">1940</option>
           <option value="1950">1950</option>
           <option value="1960">1960</option>
           <option value="1965">1965</option>
           <option value="1970">1970</option>
           <option value="1975">1975</option>
           <option value="1980">1980</option>
           <option value="1985">1985</option>
           <option value="1990">1990</option>
           <option value="1991">1991</option>
           <option value="1992">1992</option>
           <option value="1993">1993</option>
           <option value="1994">1994</option>
           <option value="1995">1995</option>
           <option value="1996">1996</option>
           <option value="1997">1997</option>
           <option value="1998">1998</option>
           <option value="1999">1999</option>
           <option value="2000">2000</option>
           <option value="2001">2001</option>
           <option value="2002">2002</option>
           <option value="2003">2003</option>
           <option value="2004">2004</option>
           <option value="2005">2005</option>
           <option value="0">tous</option>
         </select>
         <select name="select7">
           <option value="9999" selected>à</option>
           <option value="1910">1910</option>
           <option value="1920">1920</option>
           <option value="1930">1930</option>
           <option value="1940">1940</option>
           <option value="1950">1950</option>
           <option value="1960">1960</option>
           <option value="1965">1965</option>
           <option value="1970">1970</option>
           <option value="1975">1975</option>
           <option value="1980">1980</option>
           <option value="1985">1985</option>
           <option value="1990">1990</option>
           <option value="1991">1991</option>
           <option value="1992">1992</option>
           <option value="1993">1993</option>
           <option value="1994">1994</option>
           <option value="1995">1995</option>
           <option value="1996">1996</option>
           <option value="1997">1997</option>
           <option value="1998">1998</option>
           <option value="1999">1999</option>
           <option value="2000">2000</option>
           <option value="2001">2001</option>
           <option value="2002">2002</option>
           <option value="2003">2003</option>
           <option value="2004">2004</option>
           <option value="2005">2005</option>
           <option value="9999">tous</option>
         </select>
       </TD>
</TR>
</TABLE>	
<br>
<INPUT TYPE=SUBMIT NAME=submit VALUE="Envoyer">
</FORM>

Merci à qui pourra m'aider :francais:

PS: ne faites pas attention au bas du formulaire, il marche très bien, le probleme ne vient pas de là :francais:

Lien vers le commentaire
Partager sur d’autres sites

J'ai besoin de faire la même chose que toi NiTrOuS, mais ne connaissant pas le javascript, j'avais pensé faire une page avec le formulaire ainsi qu'une page traitant le formulaire (avec connexion à la bdd, envoi de la requête etc...).

Cette dernière page serait affiché en dessous du formulaire grâce à la fonction PHP include (que j'ai vu que tu utilisais dans ton code ;)). J'ai pas encore essayé, donc j'espère que ça fonctionne. :dd:

Lien vers le commentaire
Partager sur d’autres sites

Le fait qu'une option d'un SELECT soit sélectionnée ou pas se fait avec l'attribut "selected".

En fait, pour faire ce que tu fais, il te faut faire deux requêtes (enfin perso je fais comme ça).

Exemple :

$sql= "SELECT * FROM voitures v WHERE v.model='".$_GET['marque']."'";
$res = mysql_query($sql);
$sql2="SELECT * FROM marques"
$res2 = mysql_query($sql2);

Puis dans ton formulaire, tu fais un truc comme ça :

<?while ($val = mysql_fetch_array($res)) {?>
<select name="idmarque" size=1>
 <?while ($val2 = mysql_fetch_array($res2)) {?>
  <option value="<?echo $val2['idmarque']; ?>" <?if ($val['model']==$val2['idmarque']){echo "selected";}?> >
   <?echo $val2['description']; ?>
  </option>
 <?} // FIN while?>
</select>
<?} // FIN while?>

Si c'est pas trop clair, c'est peut-être parce qu'il est une heure du mat'...

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...