我正在编辑我的第一个ColdFusion脚本....我的表单有<input type="hidden" name="name" value="1">
。
在处理页面上,我想获取该值并将其设置为POST变量,以便我可以将其发送到另一页。
我知道如何在PHP中完成它,就像这样
$_POST['somename'] = $_POST['name']
我如何在CF中做到这一点?
答案 0 :(得分: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
}
这一切都引出了一个问题,即用这种方法你究竟想要达到的目标。
答案 1 :(得分:1)
ColdFusion语法类似。 “Post”变量在系统结构FORM中可用,而“Get”变量在系统结构URL中可用。与在PHP中一样,可以使用关联数组表示法访问值。您还可以使用点表示法(对于有效的字段名称)
<cfset otherVariable = FORM["variableName"] >
<cfset otherVariable = FORM.variableName >
我想接受这个值并设置它 作为POST变量,所以我可以发送它 到另一页。
我不太清楚你的意思。通常,您无需重新分配FORM或URL值。您只需在代码中引用该变量即可。
<cfoutput>
<a href="someOtherPage.cfm?name=#FORM.variableName#">Go To Other Page</a>
</cfoutput>
答案 2 :(得分:0)
您可以通过检查是否设置了post变量然后以FORM的范围存储它来尝试此操作。
<cfif isdefined ("FORM.name")>
<cfset FORM.somename="#FORM.name#">
</cfif>