2010-11-12 108 views
1

Im編輯我的第一個ColdFusion腳本....我有一個表格,它有<input type="hidden" name="name" value="1">ColdFusion,設置POST變量

在處理頁面上,我想獲取該值並將其設置爲POST變量,以便我可以將其發送到另一個頁面。

我知道如何做到這一點在PHP中,像這樣

$_POST['somename'] = $_POST['name'] 

我會怎麼做,在CF?

回答

0

您可以通過檢查post變量是否已設置,然後將其與FORM範圍一起存儲來嘗試此操作。

<cfif isdefined ("FORM.name")> 
<cfset FORM.somename="#FORM.name#"> 
</cfif> 
+1

您既不需要英鎊符號也不需要引號:''。 – 2010-11-12 03:45:39

1

ColdFusion語法與此類似。系統結構FORM中包含「Post」變量,系統結構URL中包含「Get」變量。像在PHP中一樣,可以使用關聯數組表示法來訪問值。您還可以使用點符號(有效的字段名)

<cfset otherVariable = FORM["variableName"] > 
    <cfset otherVariable = FORM.variableName > 

我想利用這個值,並將其設置爲 變量後,所以我可以 發送到另一頁。

我不太清楚你的意思。通常,您不需要重新分配FORM或URL值。您只需在您的代碼中引用該變量。

<cfoutput> 
    <a href="someOtherPage.cfm?name=#FORM.variableName#">Go To Other Page</a> 
</cfoutput> 
6

繼在你的PHP代碼中的成語,你可以做這樣的事情:

<cfset form['somename'] = form['name']> 

...或者,如果CFSCRIPT:

form['somename'] = form['name']; 

如果您擔心關於變量的存在,您可以在作業之前使用<cfparam>

<cfparam name="form.name" default=""><!--- assuming blank ok as default ---> 
<cfset form['somename'] = form['name']> 

...或腳本:

param name='form.name' default=''; 
form['somename'] = form['name']; 

當然你也可以包分配的條件:

if(structkeyexists(form,'name')){ 
    form.somename = form.name; // dot notation alternative to bracket syntax 
} 

這一切都回避了你想要達到什麼問題用這種方法。