----- Original Message -----
Sent: Friday, October 03,
2003 10:10 AM
Subject: [CFCDev] Just
starting CFC's -- Session Question
I am just now starting my learning on
CFC's and having issues with sessions .. it is quite
frustrating.
I created a VERY simple little input
for building an array populated with a struct and then sticking it
into a session.
I am not getting any session
information from the calling CFM page .. if I set the session
inside of the CFC.
Can anyone see what I am doing
wrong?
If I run cart.cfm?mode=addCart
(I see the session set in the CFC -- cfdump)
AND then Run cart.cfm?mode=viewCart
it says cartData is undefined in SESSION.
<!--- Calling CFM page
--->
<cfparam name="url.mode"
default="">
<cfswitch
_expression_="#url.mode#">
<cfcase
value="delCart">
<cfset variables.foo =
StructDelete(session,
"cartData")>
</cfcase>
<cfcase
value="addCart">
<cfparam name="url.qty"
default="1">
<cfparam name="url.id"
default="1">
<!--- <cfobject
type="component" name="addCart"
component="test.components.cartModule">
--->
<cfinvoke
component="test.components.cartModule"
method="addCart"/>
</cfcase>
<cfcase
value="viewCart">
<cfdump
var="#session.cartData#">
</cfcase>
</cfswitch>
<!--- cartModule.cfc
--->
<cfcomponent
displayname="cartModule" hint="manages Items to the
Cart">
<cffunction name="addCart" output="true"
displayname="Adds Cart Stuff" hint="Adds Cart
Stuff">
<cfif
IsDefined("session.cartData")>
<cfset
cartLen = ArrayLen(cart) + 1>
<cfset
cart[cartLen] = structNew()>
<cfset
cart[cartLen].qty = url.qty>
<cfset
cart[cartLen].id =
url.id>
<cfelse>
<cfset
cart = arrayNew(1)>
<cfset cartLen =
ArrayLen(cart) + 1>
<cfset
cart[cartLen] = structNew()>
<cfset
cart[cartLen].qty = url.qty>
<cfset
cart[cartLen].id =
url.id>
</cfif>
<cfset
session.cartData = cart>
<cfdump
var="#session.cartData#">
</cffunction>
</cfcomponent>
Also: If I call this component via
CFOBJECT the <CFDUMP in the function doesn't display anything
-- If I use <CFINVOKE it displays the dump.
Thanks
Paul Giesenhagen
QuillDesign