Logo du forum
 

Forum TT-Hardware

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Programmation » [PHP] » [newbie] création d'une liste déroulante
Login Mot de passe

1 visiteurs sur ce topic (0 membre(s), 1 invité(s) )


Auteur
Sujet : [newbie] création d'une liste déroulante
zorgh
Master
Membre # 7668

 Avatar du membre
Lieu : FRANCE

Messages :
815 (0.39 par jour)


Score :

Message du 17-05-2008 @ 17:58      Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   


Bonjour,

Je suis en train de coder une page en PHP.

Après import d'un fichier CSV dans une table Mysql, je souhaite à partir des données d'un champ retourner les données distinctes et éviter les redondances ou doublons.

Je suis donc parti sur cette commande :

Code :

$response = mysql_query("SELECT distinct champ FROM table");



1) Mon objectif maintenant est d'afficher la réponse à cette requête dans une liste déroulante.

2) L'utilisateur sélectionne depuis cette liste une donnée et alors une action se lance.

Comment dois-je procéder pour réaliser les étapes 1) et 2) ?

Merci bien
----------
Toshiba M30X-125 Intel Centrino PM 1,7 Ghz - 1 Go DDR - DD 60 Go - 15,4"W TFT - Ati Radeon 9700
- Haut de page -
Chuck.hc
Batteur du forum
Membre # 8772

 Avatar du membre
Lieu : Val d'oise

Messages :
3286 (1.63 par jour)


Score :

Message du 17-05-2008 @ 18:39   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

bon je vais essayé de faire simple ;) :

Code :


<form>
<select name="xx" size="1" onChange="chgpage(this.form)">
<option selected="selected">Choix XXXXX</option>
<?php

$connection = mysql_connect("xx","xx","xx");
         if ( ! $connection ) die ("connection impossible");
         $mabasededonnee="xx";
         mysql_select_db($mabasededonnee) or die ("pas de connection");
         $reg = mysql_query("SELECT * FROM xx ");
         while ($data = mysql_fetch_array($reg))
         {
          echo'<option value="'.$data['xx'].'">xxx</option>';
         }
?>
</select>
</form>



voila voila ;) si ta des questions hesite pas :)


[message édité le 17-05-2008 @ 18:40 Par Chuck.hc]

----------
- Haut de page -
zorgh
Master
Membre # 7668

 Avatar du membre
Lieu : FRANCE

Messages :
815 (0.39 par jour)


Score :

Message du 17-05-2008 @ 20:25   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Un très grand merci Chuck.hc pour cette réponse complète.

2 questions restent en suspend :

1) A quoi correspond xxx

2) la structure de mon code est la suivante. Où placer le code que tu me proposes ?

Code :


<table width="780" border="0" cellspacing="1" cellpadding="2" align="center">

<?php
if(isset($_POST['submit']))
{
   $filename=$_POST['filename'];
   $handle = fopen("$filename", "r");

   //connexion a la BD
   $lk = connection_BD(); // ici j'appelle la fonction qui me permet de me connecter à la base

   while (($data = fgetcsv($handle, 1000, ";")) !== FALSE)
   {

// je parcours les lignes et j'insère le contenu dans ma table

}
   fclose($handle);

}
else
{
   print "<form action='test.php' method='post'>";
   print "Veuillez fournir le fichier cvs
";
   print "<input type='file' name='filename' size='70'>
";
   print "<input type='submit' name='submit' value='Valider'></form>";
}
?>



En gros, j'affiche la demande. Lorsque je valide je traite le fichier csv en le parcourant et j'insère les données dans ma table.

Je lance alors ma requête de tri sélectif $response = mysql_query("SELECT distinct champ FROM table");
Je récupère $response pour l'afficher dans la liste déroulante.

Lorsque l'utilisateur valide son choix, je lance une action.

Le code que tu me proposes semble répondre à ma demande et je t'en remercie mais où le placer dans les lignes de mon code ?

Merci bieb

----------
Toshiba M30X-125 Intel Centrino PM 1,7 Ghz - 1 Go DDR - DD 60 Go - 15,4"W TFT - Ati Radeon 9700
- Haut de page -
zorgh
Master
Membre # 7668

 Avatar du membre
Lieu : FRANCE

Messages :
815 (0.39 par jour)


Score :

Message du 17-05-2008 @ 21:27   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Bon je l'ai posé ici et cela a l'air de fonctionner :

Code :


fclose($handle);
?>
<form>
<select name="listdiv" size="1" onChange="chgpage(this.form)">
<option selected="selected">Choix</option>
<?
$response = mysql_query("SELECT distinct champ FROM table");
while ($data = mysql_fetch_array($response) )
{
   echo "<option value='$data[champ]' name='$data[champ]'>".$data['champ']."</option>";
}
?>
<?



[message édité le 17-05-2008 @ 21:27 Par zorgh]
----------
Toshiba M30X-125 Intel Centrino PM 1,7 Ghz - 1 Go DDR - DD 60 Go - 15,4"W TFT - Ati Radeon 9700
- Haut de page -
Chuck.hc
Batteur du forum
Membre # 8772

 Avatar du membre
Lieu : Val d'oise

Messages :
3286 (1.63 par jour)


Score :

Message du 18-05-2008 @ 17:34   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

yep ;)

oublie pas de refermé le "select" et le "form" et c'est bon ;)

et suivant ton formulaire tu peux virer le onChange aussi ;)

[message édité le 18-05-2008 @ 18:20 Par Chuck.hc]

----------
- Haut de page -
B2000
Administrateur
Membre # 185

 Avatar du membre
Lieu : France/Poitiers/juste à côté...

Messages :
9418 (3.1 par jour)




Message du 18-05-2008 @ 18:08   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

et sauf erreur, il n'y a pas d'attribut "name" dans un "option"
----------
AMD Barton 2600+| MSI K7N2 DELTA L| 1Go DDR400| Maxtor 160Go| Maxtor 60Go| LG GSA-4165B| Liteon LTD16X6S| LeadTek A280LE TD| Creative SBLive! 1024| Logitech QuickCam Pro 5000| Microsoft Natural Ergonomic 4000| Logitech Cordless Optical Mouse| Samsung SyncMaster 206BW

Nikon COOLPIX 5900 + Kingston Ultimate 120x 2GB | Canon PIXMA IP4000 | ADSL 100% Neuf Box

Pour dialoguer en live, le chat TTH ou par mIRC sur irc://porsche.webchat.org:6667/tt-hardware

Rejoignez la team EBuyClub TTH !!!

Un jour j'ai mangé une pomme...
- Haut de page -
Chuck.hc
Batteur du forum
Membre # 8772

 Avatar du membre
Lieu : Val d'oise

Messages :
3286 (1.63 par jour)


Score :

Message du 18-05-2008 @ 18:19   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

exacte, que dans le
Code :

<select>



[message édité le 18-05-2008 @ 18:20 Par Chuck.hc]

----------
- Haut de page -
zorgh
Master
Membre # 7668

 Avatar du membre
Lieu : FRANCE

Messages :
815 (0.39 par jour)


Score :

Message du 18-05-2008 @ 20:17   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Je suis parti la dessus :

Code :


$response = mysql_query("SELECT distinct champ FROM table");
   
   echo "<form method=\"post\" action=\"csv_export.php\">
   Choisir ....

   <select name=\"classe\" onchange=\"this.form.submit()\">
   <option selected value=\"\">--- ELEMENT ---";

   while ($data = mysql_fetch_array($response))
   {
      echo "<option value='$data[champ]' name='$data[champ]'>".$data['champ']."</option>";
   }
   echo "</select></form>";


----------
Toshiba M30X-125 Intel Centrino PM 1,7 Ghz - 1 Go DDR - DD 60 Go - 15,4"W TFT - Ati Radeon 9700
- Haut de page -
Chuck.hc
Batteur du forum
Membre # 8772

 Avatar du membre
Lieu : Val d'oise

Messages :
3286 (1.63 par jour)


Score :

Message du 18-05-2008 @ 20:48   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

zorgh a écrit

Je suis parti la dessus :

Code :


$response = mysql_query("SELECT distinct champ FROM table");
   
   echo "<form method=\"post\" action=\"csv_export.php\">
   Choisir ....

   <select name=\"classe\" onchange=\"this.form.submit()\">
   <option selected value=\"\">--- ELEMENT ---";

   while ($data = mysql_fetch_array($response))
   {
      echo "<option value='$data[champ]'>".$data['champ']."</option>";
   }
   echo "</select></form>";



pas de "name" dans "option" ;)


----------
- Haut de page -


Aller dans le forum :  

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2006

Valid XHTML 1.0 Transitional

Page générée en 0.096 secondes