p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Invité de passage
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : décembre 2012
    Messages : 18
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    juillet 2005
    Messages
    23 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : juillet 2005
    Messages : 23 915
    Points : 35 176
    Points
    35 176

    Par défaut

    Il manque des guillemets autour de ta valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<OPTION VALUE="'.$lg["pj_an_mt"].'">'.$lg["pj_an_id"].'</OPTION>';

  3. #3
    Invité de passage
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : décembre 2012
    Messages : 18
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  4. #4
    Expert Confirmé Avatar de RunCodePhp
    Profil pro
    Inscrit en
    janvier 2010
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : janvier 2010
    Messages : 2 963
    Points : 3 907
    Points
    3 907

    Par défaut

    Salut

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <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) ?

    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]

  5. #5
    Invité de passage
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    décembre 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : décembre 2012
    Messages : 18
    Points : 4
    Points
    4

    Par défaut

    merci beaucoup et bonne année 2013

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Réponses: 2
    Dernier message: 24/02/2009, 17h40
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  4. Réponses: 1
    Dernier message: 25/09/2006, 17h15
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo