我正在编写一个函数来生成HTML列,而且我在查询中使用变量列名的语法有些麻烦。
takeWhile
我收到以下错误:
<cffunction name="generateColumns" output=True>
<cfargument name="query">
<cfargument name="numberOfColumns">
<cfargument name="columnName">
<cfargument name="linkVariable">
<cfset html = ''>
<cfset itemsPerColumn = Ceiling(query.recordCount/3)>
<!--- Loop through each column --->
<cfloop from="1" to="#numberOfColumns#" index="outerIndex">
<cfset html = html & '<ul class="icf_nav-iblock">'>
<!--- Loop through the inner items --->
<cfloop from="1" to="#itemsPerColumn#" index="innerIndex">
<cfset totalIndex = ((outerIndex - 1) * itemsPerColumn) + innerIndex>
<cfset link = createRegressiveLink("#linkVariable#",query["#columnName#"][totalIndex])>
<cfset html = html & '<li data-id="' & query["#columnName#"][totalIndex] & '">'>
<cfset html = html & '<a href="' & link & '" class="icf_btn_small">'>
<cfset html = html & query["#columnName#"][totalIndex]>
<cfset html = html & '</a>'>
<cfset html = html & '</li>'>
</cfloop>
<cfset html = html & '</ul>'>
</cfloop>
<cfreturn html>
</cffunction>
我试过了
[Table (rows 10 columns VCHRMAKE): [VCHRMAKE: coldfusion.sql.QueryColumn@1d3e7178] ] is not indexable by columnName
我得到同样的错误。
答案 0 :(得分:0)
原来我在调用函数时犯了一个愚蠢的错误。我传递了“columnName”字符串作为列的名称。结果查询[columnName] [totalIndex]是正确的语法。