会议对象阵列内有阵列
我需要创建一个购物车有许多变量,如衬衫,CompanyText,Desiner_Names,公司,Cons_Name,DSNR_Cert_Number,DSNR_Cert_Issued_Date等 这里“Shirts,CompanyText,Desiner_Names”都是数组类型其中“衬衫”是主阵列的变量。会议对象阵列内有阵列
所以我需要基本上在阵列里面有2个不同的数组以及其他变量 两个阵列里面的数组。该代码是
<!--- create a MAIN array --->
<cfset Shirts= ArrayNew(1) />
<!--- "Cons_Code" is the key value taken from "Cons_name" and "Company_Text_Code"
Also every time a user selects a new "Shirt", a new key "Cons_Code" is created --->
<cfset Cons_Code = 2 >
<!--- create a structure --->
<cfset stShirts[Cons_Code] = StructNew() />
<!--- assign values to our structure --->
<cfset stShirts[Cons_Code].Company_Text_Code = "" /><!---
<cfset stShirts[Cons_Code].CompanyText = "333" />--->
<cfset stShirts[Cons_Code].Desiner_Names = ArrayNew(1) />
<cfset stShirts[Cons_Code].Desiner_Names[1] = "PARIS" />
<cfset stShirts[Cons_Code].Desiner_Names[2] = "LONDON" />
<cfset stShirts[Cons_Code].Desiner_Names[3] = "MILAN" />
<cfset stShirts[Cons_Code].CompanyText = ArrayNew(1) />
<cfset stShirts[Cons_Code].CompanyText[1] = "perryellis" />
<cfset stShirts[Cons_Code].CompanyText[2] = "arrow" />
<cfset stShirts[Cons_Code].CompanyText[3] = "polo" />
<cfset stShirts[Cons_Code].Cons_Name = "" />
<cfset stShirts[Cons_Code].DSNR_Cert_Number = "" />
<cfset stShirts[Cons_Code].DSNR_Cert_Issued_Date = "" />
<cfset ArrayAppend(Shirts, StructCopy(stShirts[Cons_Code])) />
<!--- store structure in our array --->
<cfoutput>
<cfloop from="1" to="#ArrayLen(Shirts)#" index="row">
Row #row#:
#Shirts[row].CompanyText[1]#,
#Shirts[row].Desiner_Names[2]#,
#Shirts[row].Cons_Name#<br />
#Shirts[row].DSNR_Cert_Issued_Date#<br />
</cfloop>
</cfoutput>
有时候我由具有一个个阿雷/衬衫里面2个阵列收到错误
"You have attempted to dereference a scalar variable "
而且我是做正确的事情? 这个“Shirts”包含至少150个其他不同的可变参数,进入会话。 帮助pleez。 xain胡
注释掉
<cfset stShirts[Cons_Code].CompanyText = "333" />
我怀疑你仍然有你的代码某处这样的事情,虽然。基本上,你的错误告诉你,你正在使用数组或结构符号尝试访问一个变量,但该变量不是一个结构或数组。
仍然是一样的错误 – Xian 2010-07-28 20:46:03
“仍然是同样的错误”在什么后? Sergii是对的 - 您需要提供更多信息才能帮助您。目前,我们对实际发生的事情一无所知。 – 2010-07-29 13:02:55
您可能会遇到用cfdump拍摄购物车的麻烦。 分解每个阶段,这将使购物车,并测试它是否做它应该做的。一旦它完成了它需要做的事情,那么你可以把它放在一起。
当这条线后运行cfdump,
<!--- store structure in our array --->
<cfdump var="#stshirts#">
你会注意到,在数组中的第一个指标是不确定的,而第二个将有你的结构与子数据一起。
难道你不希望数组动态填充自己,以便你没有任何空索引?您也不需要担心生成自己的唯一索引,只需将结构中的数据提供给您,然后将其附加到数组中即可。
<cfoutput>
#ArrayAppend(ArrayName, "#StrucureName#")#
</cfoutput>
通过以上,你就可以结构添加到您的阵列,只要执行该代码前阵已经被定义。数组中的索引将相应地动态添加或删除,留下顺序索引,没有任何间隙。
如果你想从你的结构得到任何东西,
<cfloop index="i" from="1" to="#ArrayLen(ArrayName)#">
<cfoutput>
#ArrayName[i].NameOfKeyInStructure#
</cfoutput>
</cfloop>
哪一行抛出错误 – jarofclay 2010-07-28 19:53:08
这是代码的一部分功能还是CFC方法?可能是因为您没有正确使用范围和密钥/数据冲突。 – Sergii 2010-07-28 21:41:05