begin process at 2010 09 03 08:39:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive ColdFusion

 > 

Archives

 > 

Débutants

 > 

Liste déroulante


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Liste déroulante

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ée 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 lier liste déroulante [ par benji54190 ] bonjour a tous, j'ai un souci avec mes listes déroulantes, <cfquery datasource="authentification" name="projet2"&gt accents avec coldfusion8 [ par benji54190 ] Bonjour a tous, j'ai un souci avec des accents dans la bdd,exemple: Algérie --> Alg,rieAlgérie appartient a une table pays, je dois faire une liste dé Checkboxs pour selection dans une liste [ par jeanmarieb ] Bonjour, J'ai toujours eu du mal avec les Checkboxs [^^happy17] Dans une liste, je voudrais pouvoir selectionner avec des Checkboxs plusieurs élémen 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


    Nos sponsors


    Sondage...

    Comparez les prix

    CalendriCode

    Septembre 2010
    LMMJVSD
      12345
    6789101112
    13141516171819
    20212223242526
    27282930   

    Consulter la suite du CalendriCode

     
    Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

    Google Coop CodeS-SourceS Google Coop CodeS-SourceS
    Temps d'éxécution de la page : 0,920 sec (3)

    Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales