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
 

Reply via email to