Liste déroulante et valeur renvoyée - PHP - Programmation
Marsh Posté le 06-04-2004 à 11:34:23
Salut,
Tu ne peux envoyer qu'une seule valeur par <select>(du moins sans bidouille JavaScript qui m'est inconnue ). 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 !
Marsh Posté le 06-04-2004 à 11:44:04
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)
Marsh Posté le 06-04-2004 à 12:17:24
Je comprends ce que tu veux faire et je ne sais pas le faire. 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 ?
Marsh Posté le 06-04-2004 à 12:57:24
Ba en fait je tourne comme ca :
Une page d'index ou j'inclue tous le reste:
Code :
|
Et donc dans haut.php j'ai ca :
Code :
|
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 :
|
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)
Marsh Posté le 06-04-2004 à 13:16:23
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 :
|
Marsh Posté le 06-04-2004 à 13:37:19
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...?
Marsh Posté le 06-04-2004 à 14:04:07
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>";
Marsh Posté le 06-04-2004 à 14:06:29
mcclane a écrit : Donc menu.php etc il faiut que je les transforme en enorme fonction qui renvoit des valeurs? |
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
Marsh Posté le 06-04-2004 à 14:14:25
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
Marsh Posté le 06-04-2004 à 11:25:47
Bonjour tout le monde,
J'ai un probleme avec le code suivant:
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
---------------
Tous les animaux pensent mais L'Homme est le seul qui pense qu'il n'en est pas un!