1

質問と回答がたくさんあります。回答されていない質問は、エラーメッセージとともに一番上にスローされる必要があります。回答は配列にあり、回答されていない場合、配列は未定義の配列要素として値を格納します。

リストに変換して要素の位置を取得しようとしましたが、リストをループしている間に空の要素が失われています。単純なループでループすると:

  <cfloop from ="1" to="#arraylen(currentinfo.answers)#" index="ele">
  <cfset i = i+1>
   <cfif not listlen(currentinfo.answers[ele],'-')><cfset j=#i#>#j#</cfif>
  </cfloop>

以下のエラーが発生します。

Element 5 is undefined in a Java object of type class coldfusion.runtime.Array.  

The error occurred in D:\sites\askseaton\sections\PSSurvey\Clients\tags\surveydisplay.cfm: line 194

192 : <cfloop from ="1" to="#arraylen(currentinfo.answers)#" index="ele">
193 : <cfset i = i+1>
194 :   <cfif not listlen(currentinfo.answers[ele],'-')><cfset j=#i#>#j#</cfif>
195 : </cfloop>
196 : <div>Question(s)#j# must be answered to proceed further.</div>
4

2 に答える 2

2

ColdFusion 8 以降、arrayIsDefined()やりたいことを実行する関数があります。

于 2012-11-06T16:30:32.930 に答える
0

または、配列をループする別の方法を試してください。

 <cfloop array="#currentinfo.answers#" index="ele">
  <cfset i++>
   <cfif not listlen(ele,'-')><cfset j=i>#j#</cfif>
  </cfloop>
于 2012-11-06T16:48:46.267 に答える