Bruce,
I had trouble getting my head around structures too (about two years
ago), and now they're like my best friend. :o) I can probably help you
to get your head around them too if you like.
You solved your problem using a two dimensional array. That's fine. That
works, but in referencing it later it would probably be nice to have an
array of structures. I'll try and work with your example to show you
what I mean. (or at least this is what I *think* your example was trying
to accomplish). :o'
GIVEN: Form.FieldNames = "Germany,UK,Spain,Australia,Marz"
Form.Germany = "German"
Form.UK = "English"
Form.Spain = "Spanish"
Form.Australia = "English"
Form.Marz = "Martian"
Then you could do something like this:
<CFSet WorldLanguages = ArrayNew(1)>
<CFLoop index="i" from="1" to="#ListLen(Form.FieldNames)#">
<CFSet ThisCountry = ListGetAt(Form.FieldNames, i)>
<CFSet WorldLanguages[i] = StructNew()>
<CFSet WorldLanguages[i].Country = ThisCountry>
<CFSet WorldLanguages[i].Language = Trim(Form[ThisCountry])>
</CFLoop>
What this code should result in is a single dimensioned array each
element of which is a structure. This makes for easy looping and easy
reference. It's *almost* the same as referencing a query object
(queryName.columnName). One thing that *really* helped me to get my head
around this stuff, was to dump these structures and arrays and what-not
using CFDump. It's amazing the clarity that I gained from seeing these
things graphically represented on screen! It was the "click" that I
needed to get me over the hump of understanding.
Notice also, that it's not really necessary to use StructInsert (there
may be advantages to doing so, but if there are I don't know of them).
You can simply follow the name of your struct (i.e. MyStruct) by a
period and a key name. It didn't have to exist up until that point. By
the act of assigning a value to the structure key (<CFSet
MyStruct.KeyName = "Hello World"), you have just created that key as a
member of that structure, and given it a value.
Easy right? :o)
If you still want help understanding structures, give a shout and I'd be
happy to help you out however I can. Best of all, use CFDump to look at
these things. It gives amazing clarity. :o)
Cheers,
Chris
Bruce Sorge wrote:
> OK, I figure it out so please disregard the last message.
>
> I did it like this:
>
> <!--- Create the initial array --->
> <cfset languageArray= ArrayNew(1)>
>
> <!--- Loop through the form fields and get the names of them--->
> <cfloop index="i" list="#form.fieldnames#">
> <!--- If the field is not empty, get the info --->
> <cfif LEN(form[i])>
> <cfset languageArray[1][1] = #i#>
> <cfset languageArray[1][2] = #evaluate("form.#i#")#>
> <!--- Query will go here soon --->
> </cfif>
> </cfloop>
>
>
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Create robust enterprise, web RIAs.
Upgrade & integrate Adobe Coldfusion MX7 with Flex 2
http://ad.doubleclick.net/clk;56760587;14748456;a?http://www.adobe.com/products/coldfusion/flex2/?sdid=LVNU
Archive:
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:264503
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe:
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4