Précédent   Forum du club des développeurs et IT Pro > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 30/12/2012, 15h46   #1
domi232
Invité de passage
 
Homme d m
Rédacteur technique
Inscription : décembre 2012
Messages : 17
Détails du profil
Informations personnelles :
Nom : Homme d m
Localisation : France

Informations professionnelles :
Activité : Rédacteur technique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2012
Messages : 17
Points : 4
Points : 4
Par défaut recupérer une valeur dans une liste de choix

bonjour

j'ai récupéré du code qui permet de le faire, mis ca ne marche pas:
il s'agit d'un formulaire de saisie de cotisations annuelles, pour garnir une table pj_dos, contenant entre autres le champ pj_an.
la liste de choix s'appuie donc sur une table pj_an , contenant ceci:
pj_an_id/ pj_an_mt.
2012 / 14
2013 / 16

code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
<?php
	echo "<FORM NAME=\"enrdos\" ACTION=\"pJ_enrdos.php\" METHOD=\"post\"> \n  "; // saisie cotis
  	echo "  <INPUT NAME='appli' TYPE='HIDDEN' VALUE='".$appli."' >\n ";	
	echo "  <INPUT NAME='flag_agt' TYPE='HIDDEN' VALUE='".$flag_agt."' >\n ";
	echo "  <INPUT NAME='flag_maj' TYPE='HIDDEN' VALUE='".$flag_maj."' >\n ";
	echo "  <INPUT NAME='AGT_code' TYPE='HIDDEN' VALUE='".$AGT_code."' >\n ";
	echo "  <INPUT NAME='AGT_profil' TYPE='HIDDEN' VALUE='".$AGT_profil."' >\n ";
	echo "  <INPUT NAME='ADH_num' TYPE='HIDDEN' VALUE='".$ADH_num."' >\n ";
?>	
 
	<TR><TD>  Année </TD><TD><SELECT NAME="pj_an">
 
<?php
//                   c'est ici que ca se passe...
	$sql = "SELECT pj_an_id, pj_an_mt FROM pj_an order by pj_an_id desc";
	$rs=mysql_query($sql);
	while($lg=mysql_fetch_array($rs))
	{
	    print("<OPTION VALUE=".$lg["pj_an_mt"].">".$lg["pj_an_id"]."</OPTION>");
	}
?>
	 </SELECT></TD></TR>
 
	 <TR><TD width=15%>Date</TD><TD><TEXTAREA NAME="pj_date" COLS=10 ROWS=1></TEXTAREA></TD></TR>
     <TR>   <TD>&nbsp;</TD>   </TR>
 	 <TR><TD>Montant dû</TD><TD><TEXTAREA NAME="pj_mtdu" COLS=10 ROWS=1
 
etc....
La liste de choix s'ouvre bien, je peux sélectionner une valeur (2012 ou 2013)
l'enchainement sur pj_enrdos.php récupère bien toutes les variables, sauf pj_an

si vous voyez pourquoi...
merci d'avance
domi232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2012, 16h03   #2
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 480
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 480
Points : 21 294
Points : 21 294
Il manque des guillemets autour de ta valeur
Code :
echo '<OPTION VALUE="'.$lg["pj_an_mt"].'">'.$lg["pj_an_id"].'</OPTION>';
sabotage est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2013, 12h57   #3
domi232
Invité de passage
 
Homme d m
Rédacteur technique
Inscription : décembre 2012
Messages : 17
Détails du profil
Informations personnelles :
Nom : Homme d m
Localisation : France

Informations professionnelles :
Activité : Rédacteur technique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2012
Messages : 17
Points : 4
Points : 4
Par défaut PS: comment récupérer la valeur du 2ème champ de la table dans le formulaire?

merci sabot

heu..., non ,en fait, j'avais tout betement inversé les champs:
Code :
1
2
3
4
5
6
print("<OPTION VALUE=".$lg["pj_an_mt"].">".$lg["pj_an_id"]."</OPTION>");

c'est mieux comme ceci: 

print("<OPTION VALUE=".$lg["pj_an_id"].">".$lg["pj_an_mt"]."</OPTION>");
PS: tu vois le champ pj_an_mt obtenu depuis la table pj_an ( c'est le montant de la cotisation annuelle pour 1 personne); j'ai par ailleurs dans la table adhérent, ouverte sur un adhérent donné, le champ adh_nb, qui est le nombre de personnes.
je voudrais afficher le résultat (pj_an_mt * adh_nb) pour le mettre dans la table pj_dos, qui contient les cotisations dues et payées par chaque adhérent.
domi232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2013, 13h48   #4
RunCodePhp
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 965
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 965
Points : 3 671
Points : 3 671
Salut

Citation:
c'est mieux comme ceci:

print("<OPTION VALUE=".$lg["pj_an_id"].">".$lg["pj_an_mt"]."</OPTION>");
C'est mieux effectivement pour avoir rectifié l'inversion des 2 données de cette balise <option>.

Mais tu n'a pas tenu compte du code qu'a mis Sabotage, qui pourtant serait bon d'appliquer (à part l'inversion des variables tu tableau $lg).


En faite ton code Php va générer un code HTML comme ceci :
Code html :
<OPTION VALUE=50>100</OPTION>
Ce n'est pas totalement correcte dans la mesure où il est très fortement recommandé de mettre des doubles quotes (ou guillements) entre les valeurs, des délimiteurs.

En somme de générer un code HTML comme ceci :
Code html :
<OPTION VALUE="50">100</OPTION>
C'est le code qui t'a été proposé.
De plus, on te propose aussi d'utiliser "echo" plutôt que "print".

Dans ce genre de cas c'est plus simple dans la mesure ou "echo" n'est pas une fonction mais une instruction du langage (tout comme include, require), les parenthèses du coup sont optionnelles, il y en a pas vraiment besoin, c'est donc limite inutile.


Petit exo pratique, juste pour bien commencer l'année :
Essai de générer un code HTML où une balise <p></p> contiendra un attribut "title" avec comme contenu :
Exemple de contenu avec une ' (apostrophe) et un " (guillemet).
Un code HTML comme :
Code :
<p title="La phrase en question ici">Petit exo</p>
Tu fais comment à la fois "en dur" en HTML mais aussi en Php avec un echo (ou print) ?

Citation:
je voudrais afficher le résultat (pj_an_mt * adh_nb) pour le mettre dans la table pj_dos
Le mieux est de faire le calcul (multiplication) lorsque les données seront obtenues après soumission du formulaire, c'est plus fiable.

Si malgré cela tu souhaite quand même afficher ce calcul lorsque l'utilisateur sélectionne un des choix parmi le <select> (menu déroulant), il faudra t'orienter vers du JS (javascript).



PS : Bonne année 2013
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2013, 17h29   #5
domi232
Invité de passage
 
Homme d m
Rédacteur technique
Inscription : décembre 2012
Messages : 17
Détails du profil
Informations personnelles :
Nom : Homme d m
Localisation : France

Informations professionnelles :
Activité : Rédacteur technique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2012
Messages : 17
Points : 4
Points : 4
merci beaucoup et bonne année 2013
domi232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h23.


 
 
 
 
Partenaires

Hébergement Web