----- 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