2013-07-25 19 views
2

已經試過這一個億的方式,所以我想我會就壞了,問傳遞變量/ RC提交不ColdFusion中/冷箱採用隱藏式輸入

通常情況下,我的設置是針對不同事件的處理程序編輯視圖,並保存表格上的編輯視圖提交

function edit(event, rc, prc) { 

     rc.query=getmodel("somemodel").getlist(rc.unique); 
     } 

    function save(event, rc, prc){ 
    event.norender(); 
    getPlugin("MessageBox").info("#rc.allocation# Saved"); 
    setNextEvent(event="myhandler.edit", url="edit?unique=#rc.allocation#"); 
    } 

,網址像這樣將myHandler /編輯?唯一= 99,我有設置保存這樣

<form action="#event.buildLink('myhandler.save"> 

的情況下,一種形式這實質上創建的鏈接,除非我在表單中設置隱藏輸入這樣

<input id="unique" name="unique" type="hidden" value="#rc.unique#"/> 
保存事件

現在

我總是得到一個錯誤

我「元素的巧妙是RC未定義」知道必須有一種方式,可以通過表單提交參數,而不會被定義爲輸入,我只是找不到一個簡單的例子,所以如何處理

+0

,沒有辦法傳遞參數在表單上提交。您可以將其存儲在會話範圍內,但是當您不再需要時,您需要一個清除過程。像隱藏表單域那樣傳遞值是非常標準的做法。 –

+0

真的嗎?它似乎不會是標準的,因爲任何有螢火蟲/鉻工具的人都可以隨意更改輸入值,但我想這就是服務器端驗證的目的......至少我總是對隱藏的輸入不再感覺如此惡劣 –

+0

如果有的話,這是一種我不知道的技術。 :D –

回答

1

您可以使用event.getValue()來檢索值檢查直接RC。這允許您,如果它不存在RC返回默認值:除非你將它添加到查詢的URL字符串,或者將其定義爲一個表單字段

<input id="unique" name="unique" type="hidden" value="#event.getValue("unique","defaultValue")#"/> 
+0

而且你總是可以做一個StructKeyExists(rc,「unique」)做任何分支以防萬一你想根據它是否在那裏改變行爲。 – jinglesthula