在单个URL中传递两个表单变量

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)

如何从路径中删除东西?

Sco*_*roz 5

如果我正确读取此错误,当您尝试加载download.cfm时,您将收到一个错误,即startdate和enddate未在表单范围中定义.由于您将这些变量作为查询字符串的一部分传递给download.cfm(通过使用GET提交表单),因此它们不会出现在表单范围中.

我可以想到2个快速简便的解决方案:

首先,你可以改变你参考form.startdateform.enddateurl.formdateurl.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范围中相同变量名称的相同值.