Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Liste déroulante [ Archives / Débutants ] (Po55)

jeudi 14 juillet 2005 à 08:58:27 | Liste déroulante

Po55

Bonjour,
Je cherche à faire un truc qui me semble tout con, mais malgré mes recherches, je n'y arrive pas.
Alors voilà, j'ai une liste déroulante avec 2 dates (2003 et 2004). Je voudrais récupérer la valeur selectionnée (sans cliquer sur un bouton) pour ensuite la passer en paramètre d'une url.

<cfform name="choix1" METHOD="post">
           
            <cfselect name="an" onchange="an = this.options[this.selectedIndex].text">
                    <OPTION value="2004" SELECTED>2004</option>
                    <OPTION value="2003">2003</option>
             </cfselect>
 </cfform>
<li><a href="Page1.cfm?annee=#an#">Lien1 :</a></li>
<li><a href="Page2.cfm?annee=#an#">Lien2 :</a></li>

Bien sûr le code est faux, mais que dois-je faire pour que ça marche ?
Merci d'avance.


samedi 16 juillet 2005 à 12:00:06 | Re : Liste déroulante

cfquery

ESSAIE LE CODE SUIVANT VOIR
  • Lien1 :
  • Lien2 :

  • samedi 16 juillet 2005 à 20:58:42 | Re : Liste déroulante

    syndrael

    Ok..
    Avec la réponse de CFQuery, je comprends mieux. Je pensais que tu voulais changer l'URL sans faire un Submit. Si c'est le cas, il te faura utiliser  Javascript et non Cold fuison ki ne peut rien faire pour toi..
    De mémoire la valeur doit se retrouver en Javascript ainsi.
    document.monForm.an.elements[document.monForm.an.selectedIndex].value ou kelke chose dans le genre..
    S.


    lundi 18 juillet 2005 à 08:15:18 | Re : Liste déroulante

    Po55

    Merci beaucoup pour vos réponses.
    Avec ton code, cfquery, la variable 'an' reste égale à 2003. Elle ne prend jamais la valeur 2004. Je ne sais pas trop pourquoi.
    Je pense également, comme tu le dis syndrael, qu'il faut passer par javascript. J'ai essayé un peu mais je n'arrive pas à renvoyer une variable de javascript vers coldfusion. Si vous avez une solution, elle serait la bienvenue car je commence un peu à désespérer...
    Merci encore de vos réponses.


    lundi 18 juillet 2005 à 08:41:33 | Re : Liste déroulante

    lfontaine

    Salut PO55,

    Ce que tu veux faire n'est pas possible puisque le select est au niveau client et que donc CF ne peut pas voir ces valeurs dans la mesure ou la page est deja processee.

    Ce que tu peux faire c'est un truc du style (pas teste):

    <js script>
    function submitthis(page){
    document.choix1.action=page;
     document.choix1.submit();
    }
    </jscript>
    <cfform name="choix1" METHOD="post">
               
                <cfselect name="an" onchange="javascript:submitthis(document.choix1.an.value)">
                        <OPTION value="" SELECTED>Selectionez une annee</option> 
                         <OPTION value="Page1.cfm?annee=2004">2004</option>
                        <OPTION value="Page2.cfm?annee=2003">2003</option>
                 </cfselect>
     </cfform>

    Laurent

    lundi 18 juillet 2005 à 10:19:05 | Re : Liste déroulante

    Po55

    Merci pour ta réponse, et en effet tu as tout à fait raison, je suis obligé de passer par du javascript.
    Par contre, je ne souhaite pas faire une redirection lors du select, mais seulement lors du clic sur le lien.
    C'est pour cela que j'aimerai faire un truc du genre :

    <js script>
      function ma_fonction(annee){
        an=annee;
      }
    </jscript>

     <cfform name="choix1" METHOD="post">
              
                <cfselect name="an" javascript:onchange="ma_fonction(this.options[this.selectedIndex].text)">
                        <OPTION value="2004" SELECTED>2004</option>
                        <OPTION value="2003">2003</option>
                 </cfselect>
     </cfform>

    <li><a href="Page1.cfm?annee=#an#">Lien1 :</a></li>
    <li><a href="Page2.cfm?annee=#an#">Lien2 :</a></li>

    Avec ma_fonction qui valorise une variable coldfusion ('an') en fonction du value du select. Le hic, c'est que je n'arrive pas à renvoyer une variable coldfusion avec javascript.
    Je ne sais pas si j'ai été très clair...
    Quoiqu'il en soit, merci encore de votre aide.



    lundi 18 juillet 2005 à 18:44:04 | Re : Liste déroulante

    cfquery

    Réponse acceptée !

    J'ai apporté kelke correctifs o code.Réessaie voir.
    <cfif isdefined("form.an")>
    <cfset an = form.an>
    <cfelse>
    <cfset an = 2004> <!--- Puisque ton selected est pointé sur 2004 --->
    </cfif>
    <cfform name="choix1" METHOD="post">
              
    <cfselect name="an" Passthrough ="onChange=choix1.submit();">
                        <OPTION value="2004" <cfif an eq 2004>SELECTED</cfif>>2004</option>
                        <OPTION value="2003" <cfif an eq 2003>SELECTED</cfif>>2003</option>
                 </cfselect>
    </cfform>
    <li><a href="Page1.cfm?annee=<cfoutput>#an#</cfoutput>">Lien1 :</a></li>
    <li><a href="Page2.cfm?annee=<cfoutput>#an#</cfoutput>">Lien2 :</a></li>


    mardi 19 juillet 2005 à 05:35:51 | Re : Liste déroulante

    lfontaine

    Réponse acceptée !
    Salut,

    Si tu veux que la variable passes lorsque tu cliques sur le lien il faut appeler le javascript depuis le lien. EN AUCUN CAS TU NE PEUX CHANGER LA VALEUR D'UNE VARIABLE COLDFUSION DEPUIS UN JAVASCRIPT SANS RECHARGER LA PAGE. - desole il fallait que ca sorte ;o)

    Donc ce que tu cherches ressemblerait me semble t il a un truc du style:

    <js script>
    function submitthis(annee,page){
    document.choix1.action='page'+page+'.cfm?annee='+annee;
     document.choix1.submit();
    }
    </jscript>
    <cfform name="choix1" METHOD="post">
                <cfselect name="an">
                         <OPTION value="2004">2004</option>
                        <OPTION value="2003">2003</option>
                 </cfselect> 
       <li><a href="javascript:submitthis(document.choix1.an.value,'1');">Lien1 :</a></li>
       <li><a href="javascript:submitthis(document.choix1.an.value,'2');">Lien2 :</a></li>
     </cfform>

    Laurent

    mardi 19 juillet 2005 à 08:49:39 | Re : Liste déroulante

    Po55

    Merci mille fois, c'est exactement ça !
    Les deux versions marchent nickel.
    Merci encore.


    samedi 23 juillet 2005 à 01:09:07 | Re : Liste déroulante

    bastoun

    Bon.. je vais me permettre une petite remarque (depuis le temps que je suis pas venu, il faut au moins ça...)

    ce que dit Laurent(lfontaine) est tout à fait justifié, et je te déconseillerais d'utiliser le script de cfquery.. d'ailleurs si tu creuse un peu les deux scripts proposés et validés ne fonctionnent pas vraiment de la même façon, et tu te rendras compte de la différence lorsque tu installera ton script ailleurs que sur un serveur local.
    petite démonstration textuelle...


    Dans le script de lfontaine, quelque soit le temps de réponse du serveur :
    1) tu sélectionne une valeur dans la liste
    2) tu clique sur ton lien, qui par javascript(donc coté client, donc totalement transparent... pas d'appel au serveur ni besoin de recharger la page) va prendre la valeur sélectionnée dans la liste et passe la valeur 'an' en paramètre
    3) tu attéri sur ta page choisie par le lien avec la bonne année


    Dans le script de cfquery il se passe la chose suivante, si le temps de réponse du serveur est rapide :
    1) tu sélectionne une valeur dans la liste, lançant automatiquement l'ordre de recharger la page
    2) le temps de réponse étant rés rapide, la page se recharge en trés peu de temps, de façon quasi invisible pour l'utilisateur(je dis bien quasi... car en utilisant une mise en page un peu lourde et complexe, ça fera une espèce de flash...), en passant en paramètre 'an' la valeur choisie dans la liste. Cold fusion reprend la valeur et la met dans le lien
    3) tu cliques sur ton lien qui passe ta valeur an choisie précédemment en paramètre
    4) tu attéri sur ta page choisie par le lien avec la bonne année.

    imagine la même chose avec un serveur ayant un temps de réponse suffisamment long
    1) tu sélectionne une valeur dans la liste, lançant automatiquement l'ordre de recharger la page
    2) le serveur étant trés lent, ta page ne se recharge pas tout de suite.( La page précédente reste affichée tant que le serveur n'a pas envoyé suffisamment d'information sur la page en cours de chargement). Ceci te laissant suffisamment de temps pour cliquer sur ton lien avant que la page ne soit rechargée
    3) tu cliques donc sur ton lien qui possède la valeur an définie originellement au chargement de la page (bref celle qui apparait avant l'étape 1)
    4) tu atterri sur ta page choisie, mais avec une mauvaise année...


    voilà voilà... et si tu veux vérifier par toi même, fais toi une petite boucle un peu longue (genre cfloop bouclant 10000 fois) au début de tes pages coldfusion ou dépose ton script sur un serveur que tu atteins par un réseau super lent...




    1 2

    Cette discussion est classé dans : liste, déroulante


    Répondre à ce message

    Sujets en rapport avec ce message

    Passage d'une variable [ par jfg ] Bonjour,sur un formulaire g une liste déroulante alimenter par une table, cette table contient une clé et un autre champ déscription.Dans ma liste dér liste déroulante, requête et calcul [ par nioof42 ] Bonjour,Je commence à peine avec Dreamweaver et j'ai un gros problème:j'ai au moins 2 listes déroulantes liée à une base de données Acces (type produi liste déroulante [ par dinver78 ] Voila mon prob : J'ai une liste déroulante :<cfinvoke component="new-intranet.new_intranet.ginter.composant.composa liste déroulante [ par pancratee ] bonjour à tous. Je suis novis en développement. J'ai crée une base de données acces, des formulaires html. J'ai un serveur coldfusion. Je souhaite rem Trier zone de liste [ par SElKettani ] <link rel="Fi Comparaison deux listes de Valeurs [ par Goblinx ] Bonjour à tous.J'ai une table qui mémorise une liste de mots pour des candidats et des entreprises.table:Id_Record(Clé primaire)Id_Candidat(Clé étrang Problème dans la gestion d'une liste [ par Pierre_faucon ] BonsoirJ'ai une liste dont les éléments sont séparés par un ;Dans cette liste, j'ai parfois un élément vide...Exemple:Pierre;Martine;;ManonDans ce cas Resultat d’une requete dans un ListToArray [ par fionalabelle ] Salut à vous,</ ListContains avec un String qui varie [ par fionalabelle ] Salut à vous, <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"


    Nos sponsors

    Sondage...

    CalendriCode

    Janvier 2009
    LMMJVSD
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 

    Consulter la suite du CalendriCode

    Téléchargements

    Logiciels à télécharger sur le même thème :



    Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
    CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
    CodeS-SourceS.com© est une marque déposée tous droits réservés
    Temps d'éxécution de la page : 0,234 sec

    Google Coop CodeS-SourceS Google Coop CodeS-SourceS


    Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.