I have a form which has many fields in the format of
On the form action page, I would like to be able to use a loop and be able to use the index of the loop to concat with a string prefix like this <cfset newField = "field-" & #index#>
and then use the #Variables.newField#
to access the form field on the previous page.
I've been playing around with the Evaluate()
function, but no luck. I don't use ColdFusion much, so I may just be a little off on the syntax.
An example of how I am using it is:
<cfset newField = "form.field-" & #index#>
<input type="hidden"
name="field-<cfoutput>#index#</cfoutput>"
value="<cfoutput>Evaluate(Variables.newField)</cfoutput>">
You concatenate strings by using the + operator. For string literals and string constants, concatenation occurs at compile time; no run-time concatenation occurs. For string variables, concatenation occurs only at run time.
ColdFusion already supports string concatenation using “&” operator. ColdFusion 8 introduces a new string operator “&=” for compound concatenation. <! --- &= Compound concatenation.
There are two ways to concatenate strings in Java: By + (String concatenation) operator. By concat() method.
Concatenation operators join multiple strings into a single string. There are two concatenation operators, + and & . Both carry out the basic concatenation operation, as the following example shows.
You don't have to use evaluate at all for this case. Just access the variables struct by key name.
<cfset newField = "form.field-" & index>
<cfset value = variables[newField]>
or just
<cfset value = variables["form.field-#index#"]>
or if you don't want to use an intermediary variable
<cfoutput>#variables["form.field-" & index]#</cfoutput>
There's no need to set it to the variables
scope. Within your loop, you can simply access the form field values using associative array notation directly from the form
scope like this:
<input type="hidden" name="field-<cfoutput>#index#</cfoutput>"
value="<cfoutput>#form['field-' & index]#</cfoutput>">
For extra safety, it would be wise to check for the existence of each form field before trying to display it:
<cfif structKeyExists(form, 'field-' & index)>
<!--- display field --->
</cfif>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With