7
votes

Comment puis-je obtenir le paramètre URL et la valeur dans ColdFusion?

Comment puis-je obtenir le paramètre URL et la valeur dans ColdFusion? Pour ex: -

Mon URL est P>

test.cfm?par1=val1&par2=val2&par3=val3


0 commentaires

5 Réponses :


5
votes

L'ordre des variables de chaîne de requête n'est pas pertinent, ou votre application ne devrait pas s'attendre à ce qu'elle soit pertinente. Je pense que votre meilleur pari est d'avoir une autre variable qui est une liste des variables de l'ordre. Comme: XXX

Notez la présence de la nouvelle variable "Liste".

Donc, vous avez pour la première fois la valeur de "liste" puis la prend 2ème entrée "VAR2 "Et référence que dans la portée de l'URL. Vous pouvez facilement résumer tout cela afin que les noms des variables elles-mêmes ne comptent pas. Une bonne manipulation des erreurs sera nécessaire pour se protéger des attentes manquantes.


2 commentaires

Eh bien, c'est une bonne solution, mais je cherche s'il est possible d'obtenir directement le deuxième paramètre et sa valeur, au lieu de recevoir une liste et d'obtenir son deuxième élément ..


C'est le seul moyen de le faire. +1



5
votes
   <cfset Param2 = ListGetAt(CGI.QUERY_STRING,2,"&")>

3 commentaires

Je ne sais pas si vous pouvez nécessairement compter sur les paramètres d'URL étant toujours dans le même ordre dans cgi.Query_string.


@Tomalakais, je dirais que toute une approche est fausse, mais s'ils le veulent - ils l'obtiennent.


Je ne pense pas que le comptant sur la commande n'a aucun sens ni que c'est ce qu'il a demandé. Il peut décoder la valeur (ou non) s'il le souhaite.



1
votes
<cfscript>
    par2=getToken(cgi.query_string,2,"&"); // contains "par2=val2"
    par2name=getToken(par2,1,"="); // contains "par2"
    par2value=urlDecode(getToken(par2,2,"=")); // contains "val2"
</cfscript>
You could also use the listGetAt function, which is basically equivalent to getToken, with slightly different syntax.

1 commentaires

Assez juste, ajout de l'URL décodage.



21
votes

Vous pouvez également accéder à la portée code> URL code> comme structure, vous pouvez donc obtenir:

<cfloop condition="someCondition">
    <cfset email = url['email' & i] />
    <cfset name = url['name' & i] />
    <!--- Do something --->
    <cfset i++ />
</cfloop>


0 commentaires

3
votes

Pour obtenir la liste des params, vous pouvez utiliser StructKeylist (URL) ou Struckeylist (URL) (URL), puis accéder à ces paramètres via la portée de l'URL comme #URL ['PAR1'] #

<cfset params = structKeyList(url) />
<cfdump label="parameters" var="#params#" />

<cfloop index="ix" list="#params#">
    <cfoutput><div>#ix# = #url[ix]#</div></cfoutput>
</cfloop>


0 commentaires