如果存在,则附加结构以创建新的结构集

时间:2014-10-19 09:41:08

标签: 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>
        <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. 

更新#1 enter image description here

  

http://screencast.com/t/G50k5RCXROWQ

1 个答案:

答案 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);