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

  FORUM HardWare.fr
  Programmation
  PHP

  Liste déroulante et valeur renvoyée

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Liste déroulante et valeur renvoyée

n°693364
mcclane
Yipikaiiiiiiiiieeee!!!!!
Posté le 06-04-2004 à 11:25:47  profilanswer
 

Bonjour tout le monde,
 
J'ai un probleme avec le code suivant:
 
 

Code :
  1. <?php
  2. if (!(isset($_SESSION['valid_user'])) || (strncmp($_SESSION['privilege'],"1",1)!=0))
  3.  header("Location: connexion.php" );
  4. include("connect.inc" );
  5. $reqmarche="SELECT libelle, ident FROM marches";
  6. $result=mysql_query($reqmarche) or die ("Impossible de trouver les marches" );
  7. $ligne=mysql_fetch_array($result);
  8. ?>
  9. <center>
  10. <form method="post" action="index.php?page=besoins2&titre=<?php echo urlencode($ligne['libelle']); ?>">
  11.  <select name="marches" OnChange='javascript:submit()'>
  12.        <option>---Selectionner un marche---</option>
  13.               <?php while ($ligne=mysql_fetch_array($result)){ ?>
  14.               <option value="<?php echo $ligne['ident']; ?>"> <?php echo $ligne['libelle']; ?> </option>
  15.     <?php } ?>
  16.         </select>
  17. </form>
  18. </center>


 
Comme vous le voyez c'est un liste déroulante qui sélectionne les élément dans une table mysql.
 
Mon probleme se situe au niveau de la ligne action="........
 
Je voudrais transmettre dans la variable "titre" la valeur du champs selectionné (en fait ce qui est affiché et non la valeur renvoyé par POST qui n'est qu'un numéro).
 
Or avec mon code actuel, $ligne['libelle'] vaut toujours la même chose à savoir la premiere ligne.
 
Je crois que j'ai compris pourquoi ca faisait ca, mais je n'ais pas trouver comment remedier à cela.
 
 
Merci d'avance pour votre aide, et si mes explications sont pas très claires n'hésitez pas à demander des précisions :o


---------------
Tous les animaux pensent mais L'Homme est le seul qui pense qu'il n'en est pas un!
mood
Publicité
Posté le 06-04-2004 à 11:25:47  profilanswer
 

n°693394
kalex
Posté le 06-04-2004 à 11:34:23  profilanswer
 

Salut,
Tu ne peux envoyer qu'une seule valeur par <select>(du moins sans bidouille JavaScript qui m'est inconnue :o). Ta table "marches" comporte bien une ID ? C'est elle qu'il faut transmettre, ça sera facile ensuite de retrouver "libelle" sur la page suivante !

n°693435
mcclane
Yipikaiiiiiiiiieeee!!!!!
Posté le 06-04-2004 à 11:44:04  profilanswer
 

Ba en fait je transmet bien l'ID sur la page suivante par la methode POST et je retrouve le libelle sans probleme.
 
Mais la variable titre que je sougaite renseigné sert à donner un titre à la page, mais le titre est placé dans un autre cadre.  Mon cadre du haut vérifie si il ya une variable titre et affiche un titre en conséquence.
 
 
Et à la sortie du formulaire le titre est faut puisqu'il correspond à la valeur de la premiere ligne. (en suite en cliquant sur les differents liens de la page suivante le titre est bon puisque je l'ai retrouvé grace à l'ID mais le probleme survient lors du passage du formulaire à cette page)
 


---------------
Tous les animaux pensent mais L'Homme est le seul qui pense qu'il n'en est pas un!
n°693484
kalex
Posté le 06-04-2004 à 12:17:24  profilanswer
 

Je comprends ce que tu veux faire et je ne sais pas le faire. :o Cependant, je pense que si tu es obligé de faire ça c'est que l'architecture de la page est mal pensée. As-tu pensé a diviser ton code en fonctions ?

n°693520
mcclane
Yipikaiiiiiiiiieeee!!!!!
Posté le 06-04-2004 à 12:57:24  profilanswer
 

Ba en fait je tourne comme ca :
 
Une page d'index ou j'inclue tous le reste:
 

Code :
  1. <?php
  2. session_start();
  3. ob_start();
  4. If (isset($_GET["page"]))
  5.     {
  6.  $page=$_GET["page"];}//if
  7. Else
  8.     {
  9.  $page='accueil';}//valeur par défaut de $page
  10. ?>
  11. <html>
  12. <head>
  13.     <title>Achats-Conseils</title>
  14. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  15. <link href="feuille_de_style.css" rel="stylesheet" type="text/css">
  16. </head>
  17. <body bgcolor="#FFFFFF" text="#0099CC">
  18. <table width="100%" border="0" cellspacing="1" cellpadding="1">
  19. <tr>
  20. <td><div align="center"> <img src="images/animlogoca.gif" width="90" height="65" border="0">
  21. </td>
  22. <td>
  23. <? include('haut.php'); // L'entete du site  
  24. ?>
  25. </td>
  26. </tr>
  27. <tr>
  28. <td WIDTH="200" valign="top"><div class="cadremenu"><? include('menu.php'); // la page menu du site ?></div>
  29. </td>
  30. <td ><div class="centre"><? include('centre.php'); // la page centrale ?></div>
  31. </td>
  32. </tr>
  33. <tr>
  34. <td width="19%" class="bas_gauche">
  35.  <center><p><HR>Design et erreurs de<BR>code en tout genre<BR>KARA</center>
  36. </td>
  37. <td width="100%"><? include('bas.php'); //la banniere inferieure ?>
  38. </td>
  39. </tr>
  40. </table>
  41. </body>
  42. </html>
  43. <?php ob_end_flush(); ?>


 
Et donc dans haut.php j'ai ca :
 

Code :
  1. <center>
  2. <span class="BANNIERE">Portail Achats-conseils</span><br>
  3. <?php
  4.             if (isset($_GET['titre'])) { ?>
  5.     <br>
  6.     <b><FONT color=#ff6633 size="5">
  7.             <?php echo $_GET['titre']; ?>
  8.     </FONT></b>
  9.  <?php }
  10. ?>


 
Donc c'est pour ca que je passe par les URL, j'ai pas trouvé d'autre moyen pour transmettre le titre à haut.php
 
Donc tout mes liens resemble à peu près à ca:
 

Code :
  1. <p align="center"><a href="index.php?page=logout&titre=Deconnection" >logout</a></p>


 
avec "page" pour savoir qu'elle page afficher (c'est geré dans le cadre centre.php) et "titre" pourt transmettre le titre à haut.php
 
 
 
Si y'a un moyen beaucoup plu simple, j'écoute tout et j'applique (pasque c'est vrai que c'est pas simple)
 


---------------
Tous les animaux pensent mais L'Homme est le seul qui pense qu'il n'en est pas un!
n°693543
kalex
Posté le 06-04-2004 à 13:16:23  profilanswer
 

En regardant rapidement, à ta place, je ferais des fonctions. *D'abord*, j'assignerais les variables, puis je les afficherais dans le code HTML.
 
Un truc du genre :

Code :
  1. rerquire('menu.php'); // contient la fonction menu()
  2. rerquire('centre.php'); // contien la fonction centre()
  3. if(...)
  4. $titre = ... ;
  5. else
  6. $titre = ..;
  7. $menu = menu();
  8. $centre = centre();
  9. echo "<html>
  10. <head><title>$titre</title></head>
  11. <h1>$menu</h1>
  12. $centre
  13. </html>";


Message édité par kalex le 06-04-2004 à 13:17:37
n°693556
mcclane
Yipikaiiiiiiiiieeee!!!!!
Posté le 06-04-2004 à 13:37:19  profilanswer
 

Donc menu.php etc il faiut que je les transforme en enorme fonction qui renvoit des valeurs?
 
Mais quand ca fait de l'affichage j'aurait quoi dans $menu...?


---------------
Tous les animaux pensent mais L'Homme est le seul qui pense qu'il n'en est pas un!
n°693580
sonikbuzz
echo &#034;Hello World!&#034;;
Posté le 06-04-2004 à 14:04:07  profilanswer
 

Salut mcclane,
 
Pour envoyer plusieur variable dans une liste deroulante je fais ca par exemple:
 
echo("<form><SELECT NAME='facture' onchange='location=this.options[this.selectedIndex].value'>" );
for($element_number=1;$element_number<$selected+1;$element_number++)
{
echo("<OPTION value='voir_commande.php?edit=facture&table_key=$table_key&part_drop=$element_number'>$element_number</OPTION>" );
}
echo"</form>";


Message édité par sonikbuzz le 06-04-2004 à 14:07:55
n°693589
kalex
Posté le 06-04-2004 à 14:06:29  profilanswer
 

mcclane a écrit :

Donc menu.php etc il faiut que je les transforme en enorme fonction qui renvoit des valeurs?
 
Mais quand ca fait de l'affichage j'aurait quoi dans $menu...?

Enorme ? Mais non ! toutes petites ! ;)
$menu serait une chaîne de caractère.
La doc officielle est assez bien faite :
http://www.unixtech.be/docs/php-fr/function.html

n°693607
td-rat
www.corkteam.com
Posté le 06-04-2004 à 14:14:25  profilanswer
 

Je suis un peut pres au meme niveau que toi et j ai fait le choix d'utiliser des feuilles de style pour placer mon menu.
 
<div id="menu_gauche" class="menu_gauche">
</div>
 
<div id="centre" class="centre">
</div>
 
avec en .css
.menu_gauche
{position:absolue; left:0;top:35pt;
}
.centre
{margin-left:110pt;
margin-top:35pt;
}
 
Cela te permet de reserver de la place sur ta page et de pas t enmerder avec les tableaux.
 
Si tu veux mettre a jour des portions de ta page tu met caremment une iframe:
<iframe name="center" src="default.php" width="790" height="100%" scrolling="yes" class="Sommaire"></iframe>
 
que tu peux mettre a jour avec cette fonction javascript
function openSideUrl(url)
{
parent.frames["center"].location=url;
}
 
Sinon comme le conseil kalex , met que des fonction dans ta page principale.
Ca te donne : echo fonction_menu()
et ta fonction menu genere du code html


Message édité par td-rat le 06-04-2004 à 14:17:17

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

  Liste déroulante et valeur renvoyée

 

Sujets relatifs
Lien HTML Href > perte de la valeur des var PHP[Php et classes] valeur par default pour des parametres de fonctions
[résolu] récuperer la valeur de l'opération "power (10,2) "Afficher une valeur textuelle dans une cellule donnée (qui varie)
Modifier grandeur du texte dans une liste déroulante ?Récupérer la valeur retournée par une api appelée en vbscript
valeur par défaut ?Récupérer la valeur retournée par une api appelée en vbscript
Récupérer la valeur retournée par une api appelée en vbscript 
Plus de sujets relatifs à : Liste déroulante et valeur renvoyée


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