Yes I did. Had to make some changes though. Still did not produce the
desired result. Here is what I did:
Original code: newValue was being created inside the cfif's, but was not
there in the last CFSET. Also, form.FieldNames were not being found
until I added the loop before the CFIF's. What I get though are x's in
the first column only if the first column stayed selected. Once I
selected one of the other two coluns, all fields are blank. And the text
fields are always blank.
<!--- use single replace for open/close form tag --->
<cfset NewContentBlock =
REReplace(contentBlock,"</*form[^>]*>","","ALL")>
<cfset matches = reMatchNoCase('<input\s+[^>]*>', NewContentBlock)>
<cfloop array="#matches#" index="element">
<cfset htmlField = {} >
<!--- extract field attributes --->
<cfset attributes =
reMatchNoCase('((name|value|type)=\"[^\"]*\")', element)>
<cfloop array="#attributes#" index="pair">
<cfif listLen(pair, "=")>
<cfset htmlField[listFirst(pair, "=")] =
replace(listLast(pair, "="), '"', "", "all")>
</cfif>
</cfloop>
<cfset fieldExists = structCount(htmlField) EQ 3 AND
listFindNoCase(form.fieldNames, htmlField.name)>
<cfif fieldExists>
<cfset newValue = "">
<cfif htmlField.type is "radio">
<cfif htmlField.value EQ form[ field.name ]>
<cfset newValue = "x">
</cfif>
<cfelse>
<cfset newValue = form[ field.name ]>
</cfif>
</cfif>
<cfset NewContentBlock = reReplaceNoCase(NewContentBlock,
element, newValue, 'all')>
</cfloop>
Changed code:
<cfoutput query="getContentObjectData">
<!--- use single replace for open/close form tag
<cfset NewContentBlock =
REReplace(contentBlock,"</*form[^>]*>","","ALL")>
<cfset matches = reMatchNoCase('<input\s+[^>]*>',
NewContentBlock)>
<cfloop array="#matches#" index="element">
<cfset htmlField = {} >
<!--- extract field attributes --->
<cfset attributes =
reMatchNoCase('((name|value|type)=\"[^\"]*\")', element)>
<cfloop array="#attributes#" index="pair">
<cfif listLen(pair, "=")>
<cfset htmlField[listFirst(pair, "=")] =
replace(listLast(pair, "="), '"', "", "all")>
</cfif>
<cfset fieldExists = structCount(htmlField) EQ 3
AND listFindNoCase(form.fieldNames, htmlField.name)>
<cfif fieldExists>
<cfset newValue = "">
<cfloop collection="#Form#" item="field">
<cfif htmlField.type is "radio">
<cfif htmlField.value EQ form[field]>
<cfset newValue = "x">
</cfif>
<cfelse>
<cfset newValue = form[field]>
</cfif>
</cfloop>
</cfif>
<cfdump var="#NewValue#">
<!--- <cfset NewContentBlock =
reReplaceNoCase(NewContentBlock, element, newValue, 'all')> --->
</cfloop>
</cfloop>
</cfoutput> --->
C S wrote:
> Did you ever try my last suggestion. It is not ideal, but it should work.
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to
date
Get the Free Trial
http://ad.doubleclick.net/clk;160198600;22374440;w
Archive:
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:301980
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4