Tan*_*Tan 0 coldfusion cfform coldfusion-8
我在abc.cfm中运行以下表单.
//参数定义
<cfparam name="startdate" default="#DateFormat(dateAdd('d',-40,now()), 'yyyy-mm-dd')#">
<cfparam name="enddate" default="#DateFormat(dateAdd('d',-1,now()), 'yyyy-mm-dd')#">
<cfform format="HTML" action="datedownload.cfm" method="get" >
<cfformgroup type="horizontal">
<cfinput type="dateField" name="startdate" width="100" value="#startdate#">
<cfinput type="dateField" name="enddate" width="100" value="#enddate#">
<cfinput name="submitApply" type="submit" value = "Apply">
<cfinput type="button" name="download" value="Download" onclick="window.location.href='datedownload.cfm?startdate=#form.startdate#&enddate=#form.enddate#path=http://abc.xyz.com/username/July30/datedownload.cfm'">
</cfformgroup>
</cfform>
Run Code Online (Sandbox Code Playgroud)
使用datedownload.cfm中的以下代码,一切都正常打印
Startdate: <cfdump var = "#startdate#">
End Date :<cfdump var = "#enddate#">
Run Code Online (Sandbox Code Playgroud)
除此之外,Enddate正在打印完整路径,如下所示:
Startdate: 2013-06-20 End Date : 2013-07-29path=http://abc.xyz.com/username/July30/datedownload.cfm
Run Code Online (Sandbox Code Playgroud)
如何从路径中删除东西?
如果我正确读取此错误,当您尝试加载download.cfm时,您将收到一个错误,即startdate和enddate未在表单范围中定义.由于您将这些变量作为查询字符串的一部分传递给download.cfm(通过使用GET提交表单),因此它们不会出现在表单范围中.
我可以想到2个快速简便的解决方案:
首先,你可以改变你参考form.startdate并form.enddate以url.formdate和url.enddate分别.作为查询字符串的一部分传入的变量(比如当你执行GET时)会成为url范围的一部分,而不是表单范围(当你执行POST时).
其次,你可以在download.cfm中这样变量这样的变量:
<cfparam name="url.startdate" default="#DateFormat(dateAdd('d',-40,now()), 'yyyy-mm-dd')#">
<cfparam name="url.enddate" default="#DateFormat(dateAdd('d',-1,now()), 'yyyy-mm-dd')#">
<cfparam name="form.startdate" default="#url.startdate#">
<cfparam name="form.enddate" default="#url.enddate#">
Run Code Online (Sandbox Code Playgroud)
这将首先将url范围中的值设置为显示表单的页面中的相同值,然后它将表单范围中的相同变量名称设置为URL范围中相同变量名称的相同值.
| 归档时间: |
|
| 查看次数: |
2864 次 |
| 最近记录: |