Thanks Dan,
That got me on the right track although I didn't really use
your method!
Below is my solution
FormPage:
<cfoutput>
<cfset i=0>
<cfloop query="cartList">
<cfset i=#i#+1>
<tr>
<th align="left"><input type="hidden"
name="prod#i#" value="#prodID#" />#prodID#</th>
<td><input type="radio" name="colour#i#"
value="Red" />Red</td>
<td><input type="radio" name="colour#i#"
value="Blu" />Blue</td>
<td><input type="radio" name="colour#i#"
value="Wht" />White
<input type="text" name="txt#i#" size="50"
maxlength="100" />
<input type="hidden" name="txt#i#" value=",xxx,"
/></td>
</tr>
</cfloop>
<input type="hidden" name="noItems" value="#i#" />
</cfoutput>
Action Page
<cfloop from="1" to="#form.noItems#" step="1"
index="i">
Product: #form["prod" & i]#, colour: #form["colour"
& i]#, Text: #form["txt" & i]#<br />
</cfloop>