我想将查询作为参数传递给函数。
根据docs您可以将查询指定为参数类型。
然而,当我尝试这样做时:
<cfquery name="share_types_query" datasource="phonebook">
SELECT share_loan_type, share_loan_description
FROM shareloantypes
WHERE share_loan='S'
ORDER BY share_loan_type
</cfquery>
<cfscript>
phonebookQuery(share_types_query, "SHARE_TYPES");
</cfscript>
<!--function to take a query and turn the result into a JSON string-->
<cffunction name="phonebookQuery" access="public" returnType="void">
<cfargument name="query" type=query required="yes">
<cfargument name="jsVar" type=string required="yes">
<cfset json = "[ "/>
<cfloop query="query">
<cfset json = json & "{ "/>
<cfset i=1/>
<cfloop list="#arrayToList(query.getColumnList())#" index="col">
<cfset json = json & '"#col#"' & ": "/>
<cfset json = json & '"' & query[col][currentRow] & '"'/>
<cfif i lt ListLen(query.columnList)>
<cfset json = json & ", "/>
</cfif>
<cfset i= i+1/>
</cfloop>
<cfset json = json & " }"/>
<cfif currentRow lt recordCount>
<cfset json = json &","/>
</cfif>
</cfloop>
<cfset json = json & " ]"/>
<script type="text/javascript">
<cfoutput>
var #toScript(json,Arguments.jsVar)#;
</cfoutput>
</script>
</cffunction>
我收到以下错误:
The parameter SELECT to function phonebookQuery is required but was not passed in.
我是CF的新手,我在CF MX 7上。
答案 0 :(得分:0)
我发布的问题版本实际上并不是源文件中该函数的副本。源中的函数实际上有一些被注释掉的<cfargument>
个标记(第一个是name="select"
)。
我正在评论他们:<!-- a comment -->
在我的语法高亮显示器中触发了相应的响应,但ColdFusion仍在尝试执行这些行。