I haven't looked at your code that well, but I think this line:
<cfset SESSION.MyCalcArray[SESSION.LZQuote.ThisItem] = "#SESSION.PCalc#">
should be changed to
<cfset SESSION.MyCalcArray[SESSION.LZQuote.ThisItem] =
duplicate(SESSION.PCalc) />
- Rex
On 6/21/2011 1:26 PM, Nick Sweeney wrote:
> Thanks to all in advance -
>
> Question: How do I save the values of a struct in my Array vs a 'Link' to my
> Array? This seems be saving a link to whatever is in memory regardless of if
> the data is told to update the array...
> <cfset SESSION.MyCalcArray[SESSION.LZQuote.ThisItem] = "#SESSION.PCalc#">
>
> My Problem:
>
> I have a multi-page Pricing Calculator (4 page Form) where I am storing the
> FORM variables in a struct -works great- Then I want to be able to Save all
> those answers - The entire struct - as a Line Item in an Array - so the User
> can Add another Row. (very similar to a shopping cart...)
>
> The Problem is that when I go back to restart my Struct to add a new line -
> it replaces the current values of the Struct that was saved in the Array...
> Instead of saving the NEW values as a new "row". So - if I erase the Struct -
> it also erases the values in my Array.... Or I will get 3 rows in my array
> with all the same value - and if I add a new row - it makes them all the
> smae as the new one - ?!?
>
> CODE FOLLOWS:
>
> The Main Struct is SESSION.PCalc - This holds all the user entered values as
> well as some database pulls
>
> In Step One - I setup the basics:
>
> <cfparam name="URL.ThisItem" default="1">
> <cfparam name="SESSION.LZQuote.ThisQuoteNumber" default="">
> <cfparam name="SESSION.LZQuote.ThisItem" default="URL.ThisItem">
>
>
>
> <cfif Not IsDefined("SESSION.MyCalcArray")>
> <cfset SESSION.MyCalcArray = ArrayNew(1)>
> <h1>Array Was Not DEFINED!!!</h1>
> </cfif>
>
> <cfset variables.ThisQuoteNumber = "LZ-#RandRange(1000,
> 9999)#-#RandRange(000001, 999999)#">
> <!---
>
> Place Code That Checks if Quote Number is Unused
>
> --->
>
> <cfset SESSION.LZQuote.ThisQuoteNumber = variables.ThisQuoteNumber>
> <cfset SESSION.LZQuote.ThisItem = URL.ThisItem>
>
> <--- Clear Struct of OLD Variables --->
> <cfif IsDefined("SESSION.PCalc")>
> <cfoutput>#StructClear(SESSION.PCalc)#</cfoutput>
> </cfif>
>
> <!-- Lots of Steps Here 2 thru 4 - assembling SESSION.PCalc--->
>
> And at the End I Ask: Add Line Item - if so - go back to step one
>
> <cfset SESSION.MyCalcArray[SESSION.LZQuote.ThisItem] = "#SESSION.PCalc#">
>
> <cfset SESSION.LZQuote.ThisItem = SESSION.LZQuote.ThisItem + 1>
>
> <cfform
> action="Calc_Step_1.cfm?AddItem=TRUE&ThisItem=#SESSION.LZQuote.ThisItem#">
> <cfinput type="submit" name="submit" value="Add Line Item To Quote">
> </cfform>
>
> Thoughts? Help!
>
> - Nick
>
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion
Archive:
http://www.houseoffusion.com/groups/cf-newbie/message.cfm/messageid:5327
Subscription: http://www.houseoffusion.com/groups/cf-newbie/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-newbie/unsubscribe.cfm