バックグラウンド
会社のサイトのデータベースがあり、パーツを1つのテーブルに格納し、パーツオプションを別のテーブルに格納しています。
ユーザーが[カートに追加]ボタンをクリックすると、次のサンプルデータが送信されます(で取得<cfdump>
)。
ADDDESCRIPTION: Mass Meters
ADDPARTNUMBER: M- //part number minus option suffixes
ADDPRICE: 0 //if 0 then is RFQ
FIELDNAMES: //form field names
OPTIONS: .5 SCCM,5M,AIR,,_,_,Standard //part options list
<select>
現在、私は要素とチェックボックスの組み合わせを使用しています(例については、水冷閉ループ:TurmoilOCO-20Rチラー-PascalTechnologies、Incを参照してください)。それぞれ<select>
に「Options」という名前が付いているため、値は上記のカンマ区切りのリストとして返されます。
<select>
パーツオプションあたりのアイテムが4つ未満のリストでは、要素ではなくラジオボタンを使用できるようにしたいと考えています。明らかに、ラジオボタンを適切にグループ化するには個別の名前が必要ですが、ラジオボタンが送信するデータをリストの適切な位置に挿入する必要があります。
問題
ラジオボタンに名前を付け、options[#id#]
すべての要素にアクセスしてみました
<cfif qPartOptionGroups.recordcount is not 0> <!--- There are possible options for this part --->
<cfif not isDefined(FORM['options[]']) or qPartOptionGroups.recordcount is not ListLen(FORM['options[]'])>
<cfset ValidForm="">
<cfset InfoSpan="#InfoSpan#The number of options specified does not match the number of options available [#qPartOptionGroups.recordcount#] please add the item to your cart again.<br>">
<cfelse>
しかし、それは未定義の要素の例外をスローし、Element options[] is undefined in a Java object of type class coldfusion.filter.FormScope
それは私が見逃したものだと確信しています。何か案は?
PS-<select>
要素に固執することを余儀なくされた場合はそうしますが、UIの理由からラジオボタンを好みます。