テーブルと「アイテムを追加」ボタンのあるフォームが 1 つあります。[アイテムを追加] をクリックすると、ユーザーが詳細を追加できる 2 番目のフォームが開きます。2 番目のページで [送信] をクリックすると、最初の画面の表に詳細が新しい行として追加されます。配列と構造体を使用して、配列に追加/追加しています。
ユーザーが新しい行を追加しようとするたびに、既存の配列 (1 ページ目) に新しい構造体を作成し、最初のページに配列を表示しようとします。
<cfset arrayRequisition[k] = StructNew() />
<cfset arrayRequisition[k].Part_Nbr = #Variables.ReqDescription# />
<cfset arrayRequisition[k].Description = #Variables.EQT_DESCRIPTION# />
<cfset arrayRequisition[k].Quantity = #Variables.RQT_QUANTITY# />
<cfset arrayRequisition[k].Status = "pending" />
<cfset arrayRequisition[k].Line_No = #i# />
K
これは、毎回追加およびインクリメントされる行の数です。ただし、そうしているときにエラーが発生します。
「配列フィールド 1 が見つかりません」。
それを修正すると、テーブルには最後の行のみが表示されます。
<cfoutput>
<table border="1">
<tr>
<td style="font-weight:bold;">Part_Nbr </td>
<td style="font-weight:bold;">Description </td>
<td style="font-weight:bold;">Quantity </td>
<td style="font-weight:bold;">Status </td>
<td style="font-weight:bold;">Line_No</td>
</tr>
<cfdump var="#i#">
<cfloop from="1" to="#arrayLen(arrayRequisition)#" index="j">
<cfdump var="#arrayLen(arrayRequisition)#">
<tr>
<td>#arrayRequisition[j].Part_Nbr#</td>
<td>#arrayRequisition[j].Description#</td>
<td>#arrayRequisition[j].Quantity#</td>
<td>#arrayRequisition[j].Status#</td>
<td style="text-align:right;">#arrayRequisition[j].Line_No#</td>
</tr>
</cfloop>
</table>
</cfoutput>
私が理解していることから、2 つのページ間の遷移中に、以前の構造体データ/配列データが失われます。この場合、どうすれば配列の値を保持できますか?