Copy link to clipboard
Copied
Hello, all.
I'm new to working with Structures, and I'm getting an error message. I'm sure it's old-hat to most of you - I'm pretty sure this is a rookie mistake.
I'm trying to loop through form fields; I have hidden fields that contain the original value of displayed fields, to check and see which fields have been updated. For the fields that have a value different than the hidden, I'm adding to a structure for updating a database.
I'm getting the following error message:
You have attempted to dereference a scalar variable of type class java.lang.Boolean as a structure with members.
Here is the code:
<cfoutput>
<cfset thisCount = 0 />
<cfloop list="#Form.Fieldnames#" index="idx">
<cfset thisCount = thisCount + 1 />
<cfset request.thisData[thisCount] = Form[idx] /> Field: #idx# - Value: #Form[idx]#<br />
<cfif val(thisCount) mod 9 is 0>
<cfif trim(request.thisData[2]) neq trim(request.thisData[3]) OR
trim(request.thisData[4]) neq trim(request.thisData[5]) OR
trim(request.thisData[6]) neq trim(request.thisData[7]) OR
trim(request.thisData[8]) neq trim(request.thisData[9])>
<cfset updateStruct = StructInsert(updateStruct,"Resource_ID",trim(request.thisData[1])) />
<cfset updateStruct = StructInsert(updateStruct,"bf_approach",trim(request.thisData[2])) />
<cfset updateStruct = StructInsert(updateStruct,"bf_itrr",trim(request.thisData[4])) />
<cfset updateStruct = StructInsert(updateStruct,"bf_itrr_sp",trim(request.thisData[6])) />
<cfset updateStruct = StructInsert(updateStruct,"bf_results",trim(request.thisData[8])) />
</cfif>
<cfset thisCount = 0 />
</cfif>
</cfloop>
</cfoutput>
What is this Struct n00b doing wrong?
Thanks,
^_^
Read the docs for structInsert(). Is this the correct way to use it?
<cfset updateStruct = StructInsert(updateStruct,"Resource_ID",trim(request.thisData[1])) />
Hint: no.
Tip: what does structInsert() return? Does it return the struct?
Also... structInsert() is a bit of a relic of the past. You could just do this:
<cfset updateStruct["Resource_ID] = trim(request.thisData[1])>
(note also you do not need trailing slashes on CFML tags. It's not XML).
--
Adam
Copy link to clipboard
Copied
Read the docs for structInsert(). Is this the correct way to use it?
<cfset updateStruct = StructInsert(updateStruct,"Resource_ID",trim(request.thisData[1])) />
Hint: no.
Tip: what does structInsert() return? Does it return the struct?
Also... structInsert() is a bit of a relic of the past. You could just do this:
<cfset updateStruct["Resource_ID] = trim(request.thisData[1])>
(note also you do not need trailing slashes on CFML tags. It's not XML).
--
Adam