我正在检查表单值,如果结构中存在不同的表单值,它应该追加它,它应该创建该会话结构。使用以下代码,我试图这样做:
<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>
显然上面的代码没有检查表单结构中是否存在相同的值,但它也给了我一个错误:
You have attempted to dereference a scalar variable of type class java.lang.String as a structure with members.
答案 0 :(得分:4)
您将session.box_status.partner_id视为结构,但它是一个简单的值。 Session是一个结构,但您特别使用的值是一个简单的字符串。只需使用listAppend。
在评论中更多w / voyeger之后,我们发现他想要一系列结构。所以他应该首先将值初始化为数组:
session.box_status = arrayNew(1);
或
session.box_status = [];
然后他可以添加一个结构。
newData = { // keys here };
arrayAppend(session.box_status, newData);