Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Invité de passage
    Homme Profil pro d m
    Rédacteur technique
    Inscrit en
    décembre 2012
    Messages
    18
    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 : 18
    Points : 3
    Points
    3

    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

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro Vincent
    Inscrit en
    juillet 2005
    Messages
    20 696
    Détails du profil
    Informations personnelles :
    Nom : Homme Vincent

    Informations forums :
    Inscription : juillet 2005
    Messages : 20 696
    Points : 27 014
    Points
    27 014

    Par défaut

    Il manque des guillemets autour de ta valeur
    Code :
    echo '<OPTION VALUE="'.$lg["pj_an_mt"].'">'.$lg["pj_an_id"].'</OPTION>';

  3. #3
    Invité de passage
    Homme Profil pro d m
    Rédacteur technique
    Inscrit en
    décembre 2012
    Messages
    18
    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 : 18
    Points : 3
    Points
    3

    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.

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

    Informations forums :
    Inscription : janvier 2010
    Messages : 2 964
    Points : 3 509
    Points
    3 509

    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 :
    <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) ?

    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 d m
    Rédacteur technique
    Inscrit en
    décembre 2012
    Messages
    18
    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 : 18
    Points : 3
    Points
    3

    Par défaut

    merci beaucoup et bonne année 2013

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •