Coldfusion 追加结构以创建新的结构集(如果存在)
我正在检查表单值,如果不同的表单值存在于结构中,它应该附加它,否则它应该创建会话结构。使用以下代码,我正在尝试这样做:Coldfusion 追加结构以创建新的结构集(如果存在),coldfusion,Coldfusion,我正在检查表单值,如果不同的表单值存在于结构中,它应该附加它,否则它应该创建会话结构。使用以下代码,我正在尝试这样做: <cfif session.box_status.partner_id NEQ ""> <cfset session.box_status.partner_id = StructAppend(session.box_status.partner_id,FORM.partner_id,'No') /> <cfelse>
<cfif session.box_status.partner_id NEQ "">
<cfset session.box_status.partner_id = StructAppend(session.box_status.partner_id,FORM.partner_id,'No') />
<cfelse>
<cfset session.box_status.partner_id = FORM.partner_id />
</cfif>
更新#1
您将session.box\u status.partner\u id视为一个结构,但它是一个简单的值。Session是一个结构,但您特别使用的值是一个简单的字符串。只需使用listAppend 在评论中与偷窥者进行了更多的讨论之后,我们发现他想要一个结构数组。因此,他应该首先将值初始化为数组:
session.box_status = arrayNew(1);
或
然后他就可以附加一个结构
newData = { // keys here };
arrayAppend(session.box_status, newData);
谢谢@Ray,我使用了List Append,但它在结构中添加了值,我想创建同一会话的新结构,可能我认为我传达的问题是错误的,更新#1添加了结果截图:对不起,我不太明白你的意思。你想要一个新的结构?那么你想让box_status“重置”吗?是的,我想要一个新的结构,我的意思是box_status可以包含多个结构,就像我在屏幕截图中显示的那样,我可以包含n个数字。我希望我现在把我的问题说得很清楚,那么说box_状态应该是一个数组是否公平呢?如果它可以包含多组值,那么您可能需要一个结构数组?您可以在sesison启动时将其设置为数组。session.box_status=arrayNew(1)(或[])。然后您只需附加到数组中。
session.box_status = [];
newData = { // keys here };
arrayAppend(session.box_status, newData);