2010-11-12 104 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 
} 

这一切都回避了你想要达到什么问题用这种方法。