2014-10-19 52 views
1

我正在檢查表單值,如果結構中存在不同的表單值,則應該附加它,否則應該創建該會話結構。用下面的代碼,我試圖做到這一點:如果相同的值在形式結構存在與否追加結構創建新的結構集(如果存在的話)

<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

http://screencast.com/t/G50k5RCXROWQ

回答

4

你是治療session.box_status.partner_id作爲一個結構體,但它是一個簡單的值。會話是一個結構,但你特別使用的值是一個簡單的字符串。只需使用listAppend。

在談到更多w/voyeger的評論後,我們發現他想要一個結構數組。於是,他應該開始通過初始化值作爲數組:

session.box_status = arrayNew(1); 

session.box_status = []; 

,他可以再只是追加一個結構。

newData = { // keys here }; 
arrayAppend(session.box_status, newData); 
+0

謝謝@Ray,我使用了List Append,但是在結構中附加了值,我想創建一個新的結構,可能我想我錯誤地傳遞了這些問題,Update#1 Added屏幕截圖與您的結果: – voyeger 2014-10-19 09:50:43

+0

對不起 - 我不太明白你的意思。你想要一個新的結構?所以你想讓box_status重置?也許? – 2014-10-19 10:01:38

+0

是的,我想要一個新的結構,我的意思是box_status可以包含多個結構,如我在屏幕截圖中顯示的結構,我可以包含n個數字。我希望我現在提出的問題相當清楚 – voyeger 2014-10-19 10:06:54