1

我想将查询作为参数传递给函数。

根据文档,您可以将查询指定为参数类型。

但是,当我尝试这样做时:

<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 上。

4

1 回答 1

0

我发布的问题版本实际上并不是源文件中函数的副本。源代码中的函数实际上有一些<cfargument>标签(第一个是name="select")被注释掉了。

我是这样评论它们的:<!-- a comment -->这在我的语法荧光笔中触发了适当的响应,但 ColdFusion 仍在尝试执行这些行。

于 2015-05-21T13:27:58.847 回答