查询字符串到结构中
a query string into a structure
我正在使用太妃糖并将未知查询字符串传递给函数。我不知道预先传递的查询字符串值,所以我试图在函数中使用它,但它不起作用。请指出正确的方向。
这是我的代码:
<cffunction name="qrystringToStruct" returntype="any">
<cfargument name="myStruct" default="#structNew()#" type="struct">
<cfargument name="str" required="true" default="">
<cfscript>
for(i=1; i LTE listLen(arguments.str,'&');i=i+1) {
structInsert(myStruct, i, listGetAt(arguments.str,i,'&'));
}
</cfscript>
<cfreturn myStruct>
</cffunction>
<cffunction name="getCourseById" taffy:verb="get" taffy:docs:hide>
<cfargument name="structurl" type="any" default="" />
<cfdump var="#structurl#">
<cfdump var="#qrystringToStruct(structurl)#" abort>
<cfset var local = {} />
这就是我调用 url 的方式:
http://localhost:9002/taffy/index.cfm//coursesMethods?credits=3&coursetitle=power
但我得到的只是 [empty string]
让我先声明一下我从未使用过 Taffy。但是话虽如此,我认为这与您发布的问题中指定的问题无关。您的代码中有些地方让我感到困惑。
- 您的调用
qrystringToStruct(structurl)
传递了一个参数,但您的函数定义有两个参数。
- 为什么要将
myStruct
声明为参数,然后在 qrystringToStruct
函数定义中声明 <cfreturn myStruct>
?没有意义。
- 你说你把完整的url传递给
http://localhost:9002/taffy/index.cfm//coursesMethods?credits=3&coursetitle=power
?为什么不使用 cgi.QUERY_STRING
传递查询字符串部分?
无论如何,我认为您过于复杂了,您不需要自定义函数来解析您的查询字符串。您只需要一行代码。
<cfset qryString = listToArray(cgi.QUERY_STRING, "&")>
你可以在这里测试一下 here.
我正在使用太妃糖并将未知查询字符串传递给函数。我不知道预先传递的查询字符串值,所以我试图在函数中使用它,但它不起作用。请指出正确的方向。
这是我的代码:
<cffunction name="qrystringToStruct" returntype="any">
<cfargument name="myStruct" default="#structNew()#" type="struct">
<cfargument name="str" required="true" default="">
<cfscript>
for(i=1; i LTE listLen(arguments.str,'&');i=i+1) {
structInsert(myStruct, i, listGetAt(arguments.str,i,'&'));
}
</cfscript>
<cfreturn myStruct>
</cffunction>
<cffunction name="getCourseById" taffy:verb="get" taffy:docs:hide>
<cfargument name="structurl" type="any" default="" />
<cfdump var="#structurl#">
<cfdump var="#qrystringToStruct(structurl)#" abort>
<cfset var local = {} />
这就是我调用 url 的方式:
http://localhost:9002/taffy/index.cfm//coursesMethods?credits=3&coursetitle=power
但我得到的只是 [empty string]
让我先声明一下我从未使用过 Taffy。但是话虽如此,我认为这与您发布的问题中指定的问题无关。您的代码中有些地方让我感到困惑。
- 您的调用
qrystringToStruct(structurl)
传递了一个参数,但您的函数定义有两个参数。 - 为什么要将
myStruct
声明为参数,然后在qrystringToStruct
函数定义中声明<cfreturn myStruct>
?没有意义。 - 你说你把完整的url传递给
http://localhost:9002/taffy/index.cfm//coursesMethods?credits=3&coursetitle=power
?为什么不使用cgi.QUERY_STRING
传递查询字符串部分?
无论如何,我认为您过于复杂了,您不需要自定义函数来解析您的查询字符串。您只需要一行代码。
<cfset qryString = listToArray(cgi.QUERY_STRING, "&")>
你可以在这里测试一下 here.