Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/06/2006, 16h02   #1
Membre à l'essai
 
Inscription : mai 2006
Messages : 158
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 158
Points : 23
Points : 23
Par défaut [Conception] liste déroulante

Bonjour enfaite j'aimerais que a partir d'une donnée stockée dans ma base de donnée , dans ma liste déroulante cette donnée saffiche...! par exemple dans une liste déroulante ou il y orai madame , monsieur , mademoiselle ! si la donnée stockée est "Mademoiselle" alors mademoiselle soit mise par défaut ...
merci
marie4449 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 16h16   #2
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
C'est une simple serie de test à effectuer. Tu récupères tes données BDD normalement puis après tu fais des tests pour savoir quel élément du formulaire doit être coché
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 16h18   #3
Membre chevronné
 
Avatar de Hervé Saladin
 
Développeur Web
Inscription : décembre 2004
Messages : 636
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2004
Messages : 636
Points : 689
Points : 689
Bonjour,
une liste déroulante, en html, ça donne :
Code :
1
2
3
4
5
<select name="civilite">
   <option value="madame">Mme</option>
   <option value="mademoiselle">Mlle</option>
   <option value="monsieur">Mr</option>
</select>
En général, le navigateur préselectionne le premier element de la liste.
Pour qu'un élément autre que le premier soit préselectionné, il faut que la balise option de l'élément en question ait l'attribut selected :
Code :
   <option value="mademoiselle" selected>Mlle</option>
donc, une fois que tu as extrait la valeur désirée de ta base de données (immaginons que tu l'ait rangée dans une variable $civilite), tu n'as plus qu'a faire quelque chose du genre :
Code :
1
2
3
4
5
<select name="civilite">
   <option value="madame"<?php if( $civilite=="madame")print(" selected"); ?>>Mme</option>
   <option value="mademoiselle"<?php if( $civilite=="mademoiselle")print(" selected"); ?>>Mlle</option>
   <option value="monsieur"<?php if( $civilite=="monsieur")print(" selected"); ?>>Mr</option>
</select>
__________________
Ne cliquez pas sur ce lien
Hervé Saladin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 16h19   #4
Membre à l'essai
 
Inscription : mai 2006
Messages : 158
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 158
Points : 23
Points : 23
Ok je voit, je vais essayé
marie4449 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 16h21   #5
Membre chevronné
 
Avatar de Hervé Saladin
 
Développeur Web
Inscription : décembre 2004
Messages : 636
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2004
Messages : 636
Points : 689
Points : 689
Citation:
Envoyé par marie4449
Bah ca me dit pas comment faire...!
Bah je sais pas ce qu'il te faut... !
Citation:
Envoyé par marie4449
en mettant une condition c'est faisable parcequ'il y a que trois ligne dans la liste déroulante mais si il y en a 100
ben dans ce cas là, tu reprends le même principe mais dans une boucle, je ne vois pas où est le probmème
__________________
Ne cliquez pas sur ce lien
Hervé Saladin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 16h39   #6
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Décidément quand j'ai vu le pseudo j'ai eu un espoir de voir une progression avec tout ce qu'on a dit dans des précédents topics, et finalement rien. Ah si c'est moins SMS qu'au début, mais comme ça reste bourré de fautes partout... Désespérant.
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 16h50   #7
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
Citation:
Envoyé par JWhite
Décidément quand j'ai vu le pseudo j'ai eu un espoir de voir une progression avec tout ce qu'on a dit dans des précédents topics, et finalement rien. Ah si c'est moins SMS qu'au début, mais comme ça reste bourré de fautes partout... Désespérant.

c'est méchant mais en meme temps c'est tellement vrai
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 17h13   #8
Membre à l'essai
 
Inscription : mai 2006
Messages : 158
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 158
Points : 23
Points : 23
Ouaip lol je vais faire attention aux fautes !
Je ne voyais pas ca comme ca ,mais j'ai essayé de faire comme tu m'as expliqué...je ne sais pas si ca fonctionne aussi dans ce style la...c'est un ptit peu de la bidouille !
qu'en pensez vous ?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<select name="correspondant">
<?php
//remplissage de la liste déroulante a l'aide de la base de donnée en concaténant les champs afin qu'ils soit sur une meme ligne
$sql= "select initiales, nom , prenom , num from correspondant order by initiales";
$selec= "select initiales from renseignements";
$res = mysql_query($sql);
$selec= mysql_query($select);
while($tablo=mysql_fetch_array($res)) 
{
$ini = $tablo["initiales"];
echo "<option value=\"".$tablo["initiales"]."\" <if (ini==$selec)print("selected");> > ".$tablo["initiales"]." , ".($tablo["nom"])." , ".($tablo["prenom"])." , ".($tablo["num"])."</option>";
}
?>
</select>
marie4449 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 17h20   #9
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Code :
1
2
3
4
5
6
7
8
$selec= "select initiales from renseignements";
$res = mysql_query($sql);
$selec= mysql_query($select);
while($tablo=mysql_fetch_array($res)) 
{
$ini = $tablo["initiales"];
echo "<option value=\"".$tablo["initiales"]."\" <if (ini==$selec)print("selected");> > ".$tablo["initiales"]." , ".($tablo["nom"])." , ".($tablo["prenom"])." , ".($tablo["num"])."</option>";
}
ça tourne à la catastrophe, c'est pas possible, c'est pour une caméra cachée non ? sinon dis-nous quand tu compteras te mettre à php (si tu comptes t'y mettre j'en doute) on verra après
incroyable
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 17h23   #10
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
je pense que ça doit certainement pas marcher
ils manquent les balises php pour le if, la condition du if est étrange (manque le $ aussi)

et je comprends pas ce que tu veux faire

ps: tu t'es mis à la programmation quand?as tu fais qq tuto avant, lu des cours sur php etc?et surtout tu fais un site pour apprendre ou tu es en stage ou qq chose dans ce genre
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 17h53   #11
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
mon dieu que je plains l'interpréteur php dans ton cas également ;o)

Concentrons nous sur ces 2 magnifiques lignes (en réduisant un peu, sinon j'suis encore là dans 3 heures ;o) :
Code :
1
2
$ini = $tablo["initiales"];
echo "<option value=\"".$tablo["initiales"]."\" <if (ini==$selec)print("selected");> > ".$tablo["initiales"]." , ".($tablo["nom"])." , ".($tablo["prenom"])." , ".($tablo["num"])."</option>";
* Parsage de "initiales" pour voir si ca contient pas de variable : nan, une chaine toute bete, donc acces a l'indice de $tablo, reservation de mémoire et stockage dans $ini
* Parsage d'une chaine a afficher
* 1ere partie de la chaine : echapper "
* 2eme partie de la chaine : acces a l'indice initiales de $tablo (tiens, j'avais fait ca recemment et je l'avais stocké dans une variable, etrange... )
* 3eme partie de la chaine : echapper ", concatener la chaine <if (ini==, parsage et remplacement de $select, concatener la chaine )print("selected");> >
* 4eme partie de la chaine : acces a l'indice initiales de $tablo (rhoo... encore ? mais bon, l'utilisateur doit manquer de memoire et l'economiser en evitant d'instancier une variable, il ne peux en etre autrement ! Quel bon programmeur ;o)
* 5eme partie : parsage de " , " pour verifier qu'elle ne contient pas de variable et concatenation.
* 6eme partie : Oh ! On a des parenthese ! On doit donc parser une expression ! Parsage du contenu de l'expression : C'est une variable, parsage de l'indice pour verifier qu'il ne contient pas de $... ah ben nan ;o)
* 7, 8, 9, 10 : idem que 5, 6, 5, 6
* 11 : parsage de "</option>" pour verifier qu'elle ne contient pas de $ et concatenation
* 12 : affichage de la chaine concatenée

Demain je vous fait une lecture commentée sur la pertinence des noms de variables utilisées ;o)
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 18h27   #12
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
quand c'est qu'on fait un best of.....
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 19h35   #13
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Moi j'aurai carrément mis comme ceci :

Code :
1
2
3
4
5
6
7
8
$selec= "select initiales from renseignements";
$res = mysql_query($sql);
$selec= mysql_query($select);
while($tablo=mysql_fetch_array($res)) 
{
       $ini = $tablo["initiales"];
       echo '<option value="'.$ini.'" '.(($ini==$selec)?("selected"):("")).'>'.$ini.' , '.($tablo["nom"]).' , '.($tablo["prenom"]).' , '.($tablo["num"]).'</option>';
}
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2006, 20h00   #14
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
Citation:
Envoyé par Kerod
Moi j'aurai carrément mis comme ceci :

Code :
1
2
3
4
5
6
7
8
$selec= "select initiales from renseignements";
$res = mysql_query($sql);
$selec= mysql_query($select);
while($tablo=mysql_fetch_array($res)) 
{
       $ini = $tablo["initiales"];
       echo '<option value="'.$ini.'" '.(($ini==$selec)?("selected"):("")).'>'.$ini.' , '.($tablo["nom"]).' , '.($tablo["prenom"]).' , '.($tablo["num"]).'</option>';
}
Puisque on en est a donner des versions corrigés :

Code :
1
2
3
4
5
6
7
8
9
10
$sql= 'SELECT initiales, prenom, nom, num FROM renseignements';
$res = @mysql_query($sql) or die('Erreur SQL sur <tt>$sql</tt>: <br><font color=red><b>'.mysql_error().'</b></font>');
$res2= @mysql_query($sql2) or die('Erreur SQL sur <tt>$sql2</tt>: <br><font color=red><b>'.mysql_error().'</b></font>');
$select = @mysql_result($res2, 0, 'initiales') or die(mysql_error()); // faut bien le récuperer de quelque part non ?
while($data=mysql_fetch_assoc($res)) {
       list($initiales, $prenom, $nom, $num) = $data;
       // meme si on perd un peu en vitesse, je prefere cette syntaxe plus lisible :
       $selected = ($initiales==$select)?' selected':'';
       echo "<option value='$initiales'$selected>$initiales, $nom, $prenom, $num</option>";
}
Le list, c'est de la frime, j'avoue ;o) c'est plus logique d'affecter chaque valeur a une variable en utilisant la clé du tableau :
Code :
1
2
3
4
$initiales = $data['initiales'];
$prenom = $data['prenom'];
$nom =$data['nom'];
$num = $data['num'];
Ca evite d'avoir a modifier le list dans le cas ou on change l'ordre des colonnes dans la requete.

Une autre solution avec list serait :
Code :
list($initiales, $prenom, $nom, $num) = array($data['initiales'], $data['prenom'], $data['nom'], $data['num']);
mais c'est un peu lourd.

Un derniere solution un poil plus elegante que la précédente, mais qui pose probleme si on ajoute des colonnes quand meme :
Code :
1
2
ksort($data);
list($initiales, $nom, $num, $prenom) = $data;
sinon y a toujours :
Code :
1
2
3
foreach($data as $k=>$v) {
$$k = $v;
}
voir meme extract($data); mais je prefere savoir quelles sont les variables existantes dans mon code ;o)
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 09h24   #15
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Citation:
Envoyé par boo64
quand c'est qu'on fait un best of.....
C'est pas une mauvaise idée ça... Je te laisse t'en occuper moi je vais être pris les jours à venir
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 09h50   #16
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
Citation:
Envoyé par JWhite
C'est pas une mauvaise idée ça... Je te laisse t'en occuper moi je vais être pris les jours à venir
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 09h50   #17
Membre expérimenté
 
Inscription : avril 2006
Messages : 462
Détails du profil
Informations personnelles :
Âge : 33
Localisation : Canada

Informations forums :
Inscription : avril 2006
Messages : 462
Points : 556
Points : 556
Envoyer un message via MSN à rbaatouc Envoyer un message via Skype™ à rbaatouc
peut etre c une fausse impression mais jai tendance a penser que bcp viennent sur le forum pour quon leur fasse le code donc ils pondent un code pourri à la va vite et attende des code propres et des codes qui marchent.

C'est juste ce que je pense car je suis inscrit depuis 2 mois et en 2 mois il y a :
- bcp de pb recurrent(mail,sessions pour ne cité que eux) donc les personnes n'utilisent meme pas la fct recherche pour savoir si le pb a deja été traité
- et puis des pb comme celui ci de code bidon, des personnes qui ne prennent meme pas la peine de lire des cours et sexercer sur qq tuto avant de se lancer dans la programmation

Tout cela pour dire que bcp pensent que le php (voir prog web) c'est facile et tt le monde peut le faire donc pas besoin den faire un métier (je dis ça par rapport a ce que je peux lire et voir sur dautres forums)

Heu bon je me tais et bonne chance a marie car elle va en avoir besoin sinon jaimerais bien découvrir les bestof
rbaatouc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 10h04   #18
Membre Expert
 
Inscription : avril 2006
Messages : 1 338
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2006
Messages : 1 338
Points : 1 315
Points : 1 315
Citation:
Envoyé par rbaatouc
peut etre c une fausse impression mais jai tendance a penser que bcp viennent sur le forum pour quon leur fasse le code donc ils pondent un code pourri à la va vite et attende des code propres et des codes qui marchent.

C'est juste ce que je pense car je suis inscrit depuis 2 mois et en 2 mois il y a :
- bcp de pb recurrent(mail,sessions pour ne cité que eux) donc les personnes n'utilisent meme pas la fct recherche pour savoir si le pb a deja été traité
- et puis des pb comme celui ci de code bidon, des personnes qui ne prennent meme pas la peine de lire des cours et sexercer sur qq tuto avant de se lancer dans la programmation

Tout cela pour dire que bcp pensent que le php (voir prog web) c'est facile et tt le monde peut le faire donc pas besoin den faire un métier (je dis ça par rapport a ce que je peux lire et voir sur dautres forums)

Heu bon je me tais et bonne chance a marie car elle va en avoir besoin sinon jaimerais bien découvrir les bestof
+1 rbaatouc... Moi j'ai démarré le php il y'a 2 mois (pour mon stage) au début je pense avoir poster alor que j'aurais pu trouver mes erreurs .... mais quand on ma signaler mon erreur j'ai enregistré....alors que certain reposte des sujets pour des erreurs qu'ils ont deja eu!!!

donc par exemple marie tes 2,3 premier post on est indulgent.....après moins

sinon pour un petit best of :oui oui oui
__________________
Stay in Bed .. Save Energy
boo64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 10h13   #19
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
+1 avec vous deux.

Boo je me rappelle quand tu es arrivé, sans vouloir t'encenser tu es le protoype de la personne idéale sur ce forum : tu débarques un peu paumé, tu demandes quelques trucs pas évidents quand on démarre, tu assimiles, tu prends le coup de main et après tu renvoie l'ascenseur en aidant les autres. Bravo.

Remember : prise de (full) contact ici : http://www.developpez.net/forums/sho...d.php?t=137892


Et je rejoins rbaatouc, il y a des gens que j'ai vraiment envie d'aider car ils font des efforts et tu sens qu'ils sont motivés, et il y en a d'autres qui te prenne pour un chien qui va pondre du code comme si il avait que ça à faire et là ça m'énerve énormément.
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 10h14   #20
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
Je me suis inscrit y a quelques temps deja, mais ne participe a ce forum que depuis recemment, ayant trouvé que les messages présent sur ce forum était en général plus interessant et plus pointus que d'autres sur le forum d'un site concurrent (non, pas de nom ici ;o)

Mais il est vrai que ces derniers temps j'ai l'impression de retrouver le meme genre de message... ce n'est peut etre que temporaire, et je pense qu'il y a quand meme nombre de messages interessants ici.
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h01.


 
 
 
 
Partenaires

Hébergement Web