Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2439 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  liste deroulante dynamique [HELP]

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

liste deroulante dynamique [HELP]

n°389661
KdZ'
Simple®
Posté le 11-05-2003 à 13:43:48  profilanswer
 

Hello ;)
 
voila, je cherche à faire une liste déroulante dynamique...
je m'explique, en fait je voudrais que cette liste affiche tout les champs d'une table :)
 
Par exemple, j'ai une table "pages" qui contiens 3 champs : "home, contacts et infos", la liste déroulante doit m'afficher ces trois champs.
 
C'est certainement possile, c'est pour une zone admin, en faite ça servira pour modifier le contenu des pages.
 
C'est un tout petit site, mais je voudrais quand même savoir si c'est genat de mettre carement le contenu des pages dans la bdd ?
 
thx ;)


Message édité par KdZ' le 14-05-2003 à 13:58:41
mood
Publicité
Posté le 11-05-2003 à 13:43:48  profilanswer
 

n°389667
simogeo
j'ai jamais tué de chats, ...
Posté le 11-05-2003 à 13:57:17  profilanswer
 

c'est évidemment possible, ensuite c'est a toi de voir s'il est necessaire d'afficher toutes ces infos.  [:spamafote] , car ca peut être destabilisant ( voire inutile) pour l'utilisateur

n°389668
KdZ'
Simple®
Posté le 11-05-2003 à 14:00:53  profilanswer
 

J'ai bien dit que c'etait pour l'admin du site :o  
 
 :pt1cable:


Message édité par KdZ' le 11-05-2003 à 14:01:12
n°389670
simogeo
j'ai jamais tué de chats, ...
Posté le 11-05-2003 à 14:03:14  profilanswer
 

KdZ' a écrit :

J'ai bien dit que c'etait pour l'admin du site :o  
 
 :pt1cable:


 
et alors, admin ca veut pas forcement dire informaticien  :sarcastic:  
tu viens chercher des conseils ou te faire flamer toi ?

n°389672
Master_Jul
Posté le 11-05-2003 à 14:06:26  profilanswer
 

il suffit de faire une boucle qui génère les champs dans les "options" de la liste déroulante :
 

Code :
  1. if($total) {
  2.     while($row = mysql_fetch_array($result)) {
  3.          echo '<option value="'.$row['nom_team'].'">'.$row['nom_team'].'';
  4.  echo '</option>';
  5.       }
  6. }
  7. else echo 'Pas d\'enregistrements dans cette table...';


Message édité par Master_Jul le 11-05-2003 à 14:07:25
n°389676
KdZ'
Simple®
Posté le 11-05-2003 à 14:12:32  profilanswer
 

:pfff: J'ai du mal m'exprimer lors du 1er post.
 
Ce sera un truc vraiment tout con :)
Voila ce que ça va donner en gros :  
 
http://62.23.2.149/forum/ubbhtml/upload/code_kdz.1052655018.JPG

n°389679
simogeo
j'ai jamais tué de chats, ...
Posté le 11-05-2003 à 14:17:27  profilanswer
 

KdZ' a écrit :

:pfff: J'ai du mal m'exprimer lors du 1er post.
 
Ce sera un truc vraiment tout con :)
Voila ce que ça va donner en gros :  
 
http://62.23.2.149/forum/ubbhtml/u [...] 655018.JPG


 
 
"Par exemple, j'ai une table "pages" qui contiens 3 champs : "home, contacts et infos", la liste déroulante doit m'afficher ces trois champs. "
 
>> en fait ce n'est pas 3 champ mes 3 enregistrements
et non ce n'est pas genant de stocker le contenu html dans la bdd, mais pkoi tu ne listes pas ton repertoire qui contient tes pages pour faire ta liste box ?
et une fois qu'une page est selection tu prend le contenu que tu affiche en lecture écriture  [:spamafote]

n°389681
KdZ'
Simple®
Posté le 11-05-2003 à 14:23:17  profilanswer
 

Oué, j'y est bien pensser mais bon ça doit être plus conpliquer nan ?
 
Je suis en train d'essayer le code donner plus haut (merci au passage :)) mais si tu trouves que t'a methode est mieux, pas de pb...
 
Qu'est-ce que tu en pensses ? sachant que c'est pour un site d'une dizaines de pages max :)
 
merci

n°389683
simogeo
j'ai jamais tué de chats, ...
Posté le 11-05-2003 à 14:30:34  profilanswer
 

KdZ' a écrit :

Oué, j'y est bien pensser mais bon ça doit être plus conpliquer nan ?
 
Je suis en train d'essayer le code donner plus haut (merci au passage :)) mais si tu trouves que t'a methode est mieux, pas de pb...
 
Qu'est-ce que tu en pensses ? sachant que c'est pour un site d'une dizaines de pages max :)
 
merci


 
ben dans ton cas, je ne vois pas l'interet de passer par une bdd, ca te fait un intermediaire supplémentaire non necessaire
 
Si tu décides de faire comme ça, http://dev.nexen.net/docs/php/anno [...] eaddir.php commence par ca pour lister tes pages et les ajouter dans ta liste-box

n°389684
KdZ'
Simple®
Posté le 11-05-2003 à 14:31:21  profilanswer
 

J'ai essayer le code php de Master_Jul mais j'ai un petit pb, voila mon code au final :
 
 

Code :
  1. <table width="100%" height="100">
  2.   <tr>
  3.     <td align="center" valign="middle"><?php
  4. // CONNEXION A LA BDD
  5. require("../inc/connect_base.php" );
  6. $resultat = mysql_query("SELECT * FROM pages" );
  7. $row = mysql_fetch_row($resultat);
  8. ?>
  9.       <form name="form1" id="form1" method="post" action="">
  10.         <p>Choisisser la page que vous vouèlez modifier dans la liste
  11.           :
  12.           <select name="select" size="1">
  13. <?php
  14. if($total)
  15. while($row = mysql_fetch_array($result))
  16. {
  17. echo ("<option value=\"'.$row['nom_team'].'\">'.$row['nom_team'].'" );
  18. echo ("</option>" );
  19. }
  20. else
  21. echo ('Pas d\'enregistrements dans cette table !');
  22. ?>
  23.           </select>
  24.         </p>
  25.         <p>
  26.           <textarea name="page" cols="100" rows="35">text par default</textarea>
  27.           <br />
  28.           <br />
  29.           <input type="submit" name="Submit" value="Sauvegarder" />
  30.           <input type="button" name="Submit3" value="Effacer" onclick="alert('Pour supprimer le contenu du formulaire, double-cliquer dedans.');"/>
  31.           <input type="reset" name="Submit2" value="Rétablir" />
  32.         </p>
  33.       </form>
  34.     </td>
  35.   </tr>
  36. </table>

 
 
 Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in e:\easyphp\www\entrainements\apla\admin\modif_page.php on line 29
 
Une idée ¿


Message édité par KdZ' le 11-05-2003 à 14:32:15
mood
Publicité
Posté le 11-05-2003 à 14:31:21  profilanswer
 

n°389689
Master_Jul
Posté le 11-05-2003 à 14:35:34  profilanswer
 

c'est laquelle ta ligne 29 déjà ?
 
+
 

Code :
  1. <?
  2. $host = 'localhost';
  3. $user = 'xxx';
  4. $pass = 'xxx';
  5. $db = 'xxx';
  6. $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
  7. mysql_select_db($db) or die ('Erreur :'.mysql_error());
  8. $select = "SELECT * FROM lan1 WHERE leader='1' ORDER BY nom_team";
  9. $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
  10. $total = mysql_num_rows($result);
  11. if($total) {
  12.  
  13.     while($row = mysql_fetch_array($result)) {
  14.          echo '<option value="'.$row['nom_team'].'">'.$row['nom_team'].'';
  15.  echo '</option>';
  16.       }
  17. }
  18. else echo 'Pas d\'enregistrements dans cette table...';
  19. mysql_free_result($result);
  20. mysql_close();
  21. ?>


 
Ce code permet de lister des valeurs d'un champs, j'ai des équipes dans une table, j'ai le champs équipe et je liste les noms d'équipe grace à la boucle.
 
Si tu veux lister les noms de champs uniquement, le plus simple serait encore de le faire à la main car la structure de ta table n'est pas censé changer et s'agrandir tous les 2 jours.
 
Si, par contre, tu veux lister le contenu d'un des champs, ma méthode me semble adaptée, après tu as besoin de redigirer en fonction du lien choisit il me semble dans ton cas.


Message édité par Master_Jul le 11-05-2003 à 14:42:05
n°389693
KdZ'
Simple®
Posté le 11-05-2003 à 14:40:24  profilanswer
 

Scuse je l'ai pas mis, voila l'erreur maintenant (toujours avec le meme code mais je l'ai "eclairci" :  
 
 Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in e:\easyphp\www\entrainements\apla\admin\modif_page.php on line 26  
 
Et la ligne 26 est celle-ci :  
 
 

Code :
  1. echo ("<option value=\"'.$row['nom_team'].'\">'.$row['nom_team'].'" );

;)

n°389700
Master_Jul
Posté le 11-05-2003 à 14:44:15  profilanswer
 

première chose, tu n'as pas de $total donc ta boucle peut difficilement marcher, regarde ce que j'ai édité au dessus, ensuite tu n'as pas les champs nom_team dans ta base, c'est à toi d'adapter

n°389701
simogeo
j'ai jamais tué de chats, ...
Posté le 11-05-2003 à 14:45:16  profilanswer
 

echo ("<option value=\"".$row['nom_team']."\">".$row['nom_team']."</option>" );
 
et comme ca ?
 
edit :  :whistle:


Message édité par simogeo le 11-05-2003 à 14:50:35
n°389717
KdZ'
Simple®
Posté le 11-05-2003 à 15:01:50  profilanswer
 

simogeo : c bon il n'y à plus d'erreur ;)
 
Master_Jul : je vais essayer :)
 
ps : ce que je voudrais c'est lister les noms des champs et pas leur contenu, c bon quand même ton code ?

n°389728
KdZ'
Simple®
Posté le 11-05-2003 à 15:15:55  profilanswer
 

unexpected T_VARIABLE
voila la ligne en question :  $result = mysql_query ($select,$link) or die ('Erreur : '.mysql_error() );
 
 
il n'y a pourtant pas d'erreur :(
Arf, mon projet est bien mal partit :(

n°389729
Master_Jul
Posté le 11-05-2003 à 15:16:49  profilanswer
 

KdZ' a écrit :

simogeo : c bon il n'y à plus d'erreur ;)
 
Master_Jul : je vais essayer :)
 
ps : ce que je voudrais c'est lister les noms des champs et pas leur contenu, c bon quand même ton code ?


 
le principe de boucle oui, sinon non, pourquoi tu as besoin de le faire "dynamiquement" ?
 

Citation :

Si tu veux lister les noms de champs uniquement, le plus simple serait encore de le faire à la main car la structure de ta table n'est pas censé changer et s'agrandir tous les 2 jours.

 
 

n°389730
simogeo
j'ai jamais tué de chats, ...
Posté le 11-05-2003 à 15:20:08  profilanswer
 

KdZ' a écrit :

unexpected T_VARIABLE
voila la ligne en question :  $result = mysql_query ($select,$link) or die ('Erreur : '.mysql_error() );
 
 
il n'y a pourtant pas d'erreur :(
Arf, mon projet est bien mal partit :(  


 
il manque un ";" après mysql_error(), non ?


Message édité par simogeo le 11-05-2003 à 15:20:34
n°389734
KdZ'
Simple®
Posté le 11-05-2003 à 15:26:28  profilanswer
 

simogeo : je viens de verifier, et ce n'est pas ça ;)
 
Sinon, j'ai besoin de le faire dynamiquement car si il y eu une autre page entre temps, ou qu'une ai été deleter... bref, tu vois ce que je veux dire, je souhaite que la liste deroulante m'affiche tous les champs dispo dnas la table "pages" ; parce que un champs correspond à une page ;)
 
voila une capture de phpmyadmin :  
http://62.23.2.149/forum/ubbhtml/upload/code_kdz.1052659429.JPG ps j'ai mis du 14 un peu partout histoire de remplir...
 
;)

n°389736
Master_Jul
Posté le 11-05-2003 à 15:26:55  profilanswer
 

bizarre que tu ais toutes ces erreurs, moi ça marche très bien
 
[:meganne]


Message édité par Master_Jul le 11-05-2003 à 15:27:47
n°389746
simogeo
j'ai jamais tué de chats, ...
Posté le 11-05-2003 à 15:31:08  profilanswer
 

ok pour le ";" ... en fait je pense que l'erreur doit venir de la ligne d'avant ou d'une accolade mal fermé ailleurs.
 
du reste, je pense que t'as pas très bien compris comment fonctionne les bdd, en fait tes pages ne doivent pas correspondre a des champs mais a des enregistrements.
 
à la rigueur, si tu tiens a le faire en bdd :
 
fais plutôt une table PAGES :
- page_id (auto_increment);
- page_name (varchar);
- page_body (text);
 
et ensuite tu stockes autant de pages que tu veux dans ta table PAGES  [:spamafote]  

n°389749
Master_Jul
Posté le 11-05-2003 à 15:36:24  profilanswer
 

:jap: j'allais proposer ceci :
 
http://www.masterjul.net/vrac/exemple_sql.png

n°389752
KdZ'
Simple®
Posté le 11-05-2003 à 15:38:50  profilanswer
 

"Oula" :o ça me surpasse :)
 
Eu, comme vous voulez en faite, je suis perdu maintenant... :pt1cable:


Message édité par KdZ' le 11-05-2003 à 15:39:13
n°389753
simogeo
j'ai jamais tué de chats, ...
Posté le 11-05-2003 à 15:40:59  profilanswer
 

KdZ' a écrit :

"Oula" :o ça me surpasse :)
 
Eu, comme vous voulez en faite, je suis perdu maintenant... :pt1cable:


 
 
tu vas voir c'est pas très compliqué, tu prenais le modèle à l'envers en fait.  
 
> Master_Jul : même structure de base :D ( bon c'est logique)
 
bon courage, moi je vous laisse, ciao
 

n°389756
KdZ'
Simple®
Posté le 11-05-2003 à 15:42:52  profilanswer
 

Moué, merci en tout cas, mais moi aussi je sort 2-3 heures, je reprend ça dans la soirée, si vous êtes là, ça m'arangerait :)
++
bonne journée ;)

n°389763
Master_Jul
Posté le 11-05-2003 à 15:51:24  profilanswer
 

Oki, pas de problème, et après, tu pourras utiliser ce code sans problème :
 

Code :
  1. <select name="rubrique">
  2.         <?
  3. include "rubrique_listing.php";
  4. ?>
  5.       </select>


 
 
rubrique_listing.php
 

Code :
  1. <?
  2.   $host = 'localhost';
  3.   $user = 'xxx';
  4.   $pass = 'xxx';
  5.   $db = 'xxx';
  6.  
  7.  
  8.   $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
  9.   mysql_select_db($db) or die ('Erreur :'.mysql_error());
  10.  
  11.  
  12.   $select = "SELECT * FROM pages ORDER BY id"; 
  13. // j'ai mis order by id pour les afficher par ordre d'ajout, mais tu peux mettre "nom" pour avoir un ordre alphabétique
  14.   $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
  15.   $total = mysql_num_rows($result);
  16.    
  17.   if($total) {
  18.      
  19.         while($row = mysql_fetch_array($result)) {
  20.                echo '<option value="'.$row['id'].'">'.$row['nom'].'';
  21.         echo '</option>';
  22.            }
  23.   }
  24.   else echo 'Pas d\'enregistrements dans cette table...';
  25.    
  26.   mysql_free_result($result);
  27.  
  28.   mysql_close(); 
  29.  
  30.   ?>


 
Après tu obtiens ta liste déroulante avec une syntaxe comme celle là :
 

Code :
  1. <form action="modif_rubrique.php" method="post">
  2.           <select name="rubrique">
  3.               <option value="1" >accueil</option>
  4.               <option value="2" >contenu</option>
  5.               <option value="3" >projet</option>
  6.           </select>
  7.           <input type="submit" value="Go">
  8.         </div></form>


 
Où tu récupère la "value" comme variable pour traiter la rubrique sélectionnée, j'espère qu'il n'y a pas qq erreurs qui se sont glissé :D


Message édité par Master_Jul le 11-05-2003 à 15:52:23

---------------
En français, on écrit "connexion", pas "connection".
n°389902
KdZ'
Simple®
Posté le 11-05-2003 à 20:43:58  profilanswer
 

Ouaaa!! merci bien, je vais essayer ça de suite :)
Par contre le fichier 'rubrique_listing.php', pas de pb, met le fichier là où j'ai mon formulaire (liste deroulante et textarea) je met quel code ? ton premier c bien ça hein ? :??:  
 
Et je doit aussi crée la meme table que sur la capture un peu plus haut, hum oki, ça devrait aller je pense, thx ;)

n°389912
KdZ'
Simple®
Posté le 11-05-2003 à 21:10:51  profilanswer
 

Oup's, il doit y avoir une erreur, voila le code "generé" :
 <select name="rubrique" size="1">
 
          <br />
<b>Parse error</b>:  parse error, unexpected T_STRING in <b>e:\easyphp\www\entrainements\apla\admin\rubrique_listing.php</b> on line <b>2</b><br />
        </select>

n°389916
simogeo
j'ai jamais tué de chats, ...
Posté le 11-05-2003 à 21:19:34  profilanswer
 

ok, alors montre nous ton code !  [:spamafote]

n°389920
KdZ'
Simple®
Posté le 11-05-2003 à 21:25:50  profilanswer
 

c'est le code de Master_Jul ci-dessus.

n°389926
simogeo
j'ai jamais tué de chats, ...
Posté le 11-05-2003 à 21:47:01  profilanswer
 

alors appelle directement rubrique_listing.php

n°389929
KdZ'
Simple®
Posté le 11-05-2003 à 21:49:06  profilanswer
 

c ce que je fais :  
 
 

Code :
  1.  <?  
  2.  include "rubrique_listing.php";  
  3.  ?>

n°389930
simogeo
j'ai jamais tué de chats, ...
Posté le 11-05-2003 à 21:51:39  profilanswer
 

non mais depuis la barre d'adresse du browser  :)


Message édité par simogeo le 11-05-2003 à 21:53:46
n°389931
KdZ'
Simple®
Posté le 11-05-2003 à 21:54:35  profilanswer
 

scuse ;)
 
voila :  
 
 Parse error: parse error, unexpected T_STRING in e:\easyphp\www\entrainements\apla\admin\rubrique_listing.php on line 2

n°389932
simogeo
j'ai jamais tué de chats, ...
Posté le 11-05-2003 à 21:56:40  profilanswer
 

source  :bounce:  !!!!! tu as du faire une erreur en passant tes variables de connexion !

n°389934
KdZ'
Simple®
Posté le 11-05-2003 à 21:59:39  profilanswer
 

j'ai pourtan tout rempli comme il fallait :  
 
 

Code :
  1. <?php
  2.    $host = '';  
  3.    $user = '';  
  4.    $pass = '';  
  5.    $db = 'apla';  
  6.      
  7.      
  8.    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );  

 
 
la ligne 2 c celle-ci :  
    $host = '';   (bien renseignée bien sur:))

n°389935
simogeo
j'ai jamais tué de chats, ...
Posté le 11-05-2003 à 22:03:43  profilanswer
 

KdZ' a écrit :


la ligne 2 c celle-ci :  
    $host = '';   (bien renseignée bien sur:))
 


 
tu n'as rien a cacher, $host contient localhost  [:spamafote] si tu fais tes tests sur easyphp ( et que tu n'as rien modifier ).... surtout pas de caracteres bizarres.
 
essayes avec ca d'ailleurs --> $host = '';   pour voir si l'erreur vient de là  [:spamafote]


Message édité par simogeo le 11-05-2003 à 22:03:58
n°389936
KdZ'
Simple®
Posté le 11-05-2003 à 22:06:35  profilanswer
 

pareil :(

n°389937
simogeo
j'ai jamais tué de chats, ...
Posté le 11-05-2003 à 22:11:14  profilanswer
 

je viens de faire un côpier-coller du code de Master_Jul et je l'ai executé -> aucune parse error  c'est certain que tu as fait une boulette en recopiant.
 
fais moi un copier coller violent de tout le code Ctrl-A, Ctrl-C et Ctrl-V sur le forum  [:spamafote]

n°389939
KdZ'
Simple®
Posté le 11-05-2003 à 22:14:02  profilanswer
 

effectivement c violent  :D :
 
 

Code :
  1. <?php
  2.    $host = 'localhost';  
  3.    $user = 'root';  
  4.    $pass = '';  
  5.    $db = 'apla';  
  6.      
  7.      
  8.    $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );  
  9.    mysql_select_db($db) or die ('Erreur :'.mysql_error());  
  10.      
  11.      
  12.    $select = "SELECT * FROM pages ORDER BY id";  
  13.  
  14.  // j'ai mis order by id pour les afficher par ordre d'ajout, mais tu peux mettre "nom" pour avoir un ordre alphabétique
  15.  
  16.    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );  
  17.    $total = mysql_num_rows($result);  
  18.        
  19.    if($total) {  
  20.            
  21.            while($row = mysql_fetch_array($result)) {  
  22.                     echo '<option value="'.$row['id'].'">'.$row['nom'].'';  
  23.              echo '</option>';  
  24.               }  
  25.    }  
  26.    else echo 'Pas d\'enregistrements dans cette table...';  
  27.          
  28.    mysql_free_result($result);  
  29.      
  30.    mysql_close();  
  31.      
  32. ?>

 
 
voila pour rubrique_listing.php ;)
merci :jap:

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  liste deroulante dynamique [HELP]

 

Sujets relatifs
C : help je ne trouve pas l'erreur (solution trouver merci)liste déroulantes access et autres
création dynamique de contrôleCréation dynamique de composants et plus...
[C]Taille de chaine de caractères dynamique...Calcul TVA avec PHP [NEED HELP]
tableau dynamique[C++] Un vector contenant des iterateur de liste, c'est possible ?
[Oracle] n00b queries help (je maitrise pas les sub queries)HELP lancer 1 swf en autorun sur un cd
Plus de sujets relatifs à : liste deroulante dynamique [HELP]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR