CFSEARCH を使用して、キー変数をカンマ区切りのリストとして含めて、4 つのカスタム フィールドが許可するよりも多くの情報を返します。ただし、システムは、リスト項目が見つからないというエラーをスローしています。
「キー」変数の各レコードは、次の形式になります: a,b,c
<cfsearch
name="theCourses"
collection="#arguments.collectionName#"
type="simple"
startrow="1"
maxrows="100"
criteria="#Lcase(Trim(arguments.searchCriteria))#"
contexthighlightbegin="<b>"
contexthighlightend="</b>"
status="courseListStatus"
/>
<cfset courseList = QueryNew("ID, Score, Course, Subject, Day, Title, Semester, Status", "varchar, varchar, varchar, varchar, varchar, varchar, varchar, varchar") />
<cfloop query="theCourses">
<cfset temp = QueryAddRow(courseList) />
<cfset temp = QuerySetCell(courseList, "ID", custom3) />
<cfset temp = QuerySetCell(courseList, "Score", score) />
<cfset temp = QuerySetCell(courseList, "Course", ListGetAt(key, 2, ",")) />
<cfset temp = QuerySetCell(courseList, "Subject", ListFirst(key, ",")) />
<cfset temp = QuerySetCell(courseList, "Day", custom1) />
<cfset temp = QuerySetCell(courseList, "Title", custom4) />
<cfset temp = QuerySetCell(courseList, "Semester", custom2) />
<cfset temp = QuerySetCell(courseList, "Status", ListLast(key, ",")) />
</cfloop>
次のエラーが表示されます。
リスト インデックス 2 が無効です。
関数 ListGetAt(list, index [, delimiters]) で、インデックス 2 の値は最初の引数として有効ではありません (このリストには 1 つの要素があります)。有効なインデックスは、1 からリスト内の要素数までの範囲です。