Logo du forum
 

Forum TTH-News

| 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

2 visiteurs sur ce topic (1 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 :
869 (0.16 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 :
4244 (0.78 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 :
869 (0.16 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 :
869 (0.16 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 :
4244 (0.78 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 :
9757 (1.51 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"
----------
Intel i5 2500K | Noctua NH-U12S | Asus P8P67 Pro Rev3.1 | 2x HyperX Fury 8Go DDR3-1866MHz CAS 10 | PNY GeForce GTX 1060 XLR8 OC 6 Go | Sandisk Ultra Plus 256Go | Sony AD-7280S | Logitech QuickCam Pro 5000 | Microsoft Natural Ergonomic 4000 | Roccat Kova | SteelSeries QcK | Corsair Gaming Void USB | iiyama ProLite E2472HDD
Lenovo T430s : i5 3320m / 2x8Go / SAMSUNG 840 Pro 512Go / station Mini Dock serie 3 / LG 34um95 3440x1440 34" / SAMSUNG SyncMaster SA450 1920x1200 24"/ Clavier Lenovo Ultraslim sans fil / Souris Logitech MX Anywhere 2
Nexus 6 64Go Android 7.1.1 | Garmin Forerunner 305 | Nikon COOLPIX S9200 + Transcend SDHC 8GB | Canon PIXMA IP4850 | ADSL neufbox de SFR
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 :
4244 (0.78 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 :
869 (0.16 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 :
4244 (0.78 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-2010

Valid XHTML 1.0 Transitional

Page générée en 0.042 secondes