0

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>

datedownload.cfm の次のコードを使用すると、すべて正常に印刷されます。

Startdate: <cfdump var = "#startdate#">
End Date :<cfdump var = "#enddate#">

それを除いて、Enddate は次のようにフル パスを出力しています。

Startdate: 2013-06-20 End Date : 2013-07-29path=http://abc.xyz.com/username/July30/datedownload.cfm 

パスから始まるものを削除するにはどうすればよいですか?

4

4 に答える 4

5

これを正しく読んでいると、download.cfm を読み込もうとすると、開始日と終了日がフォーム スコープで定義されていないというエラーが表示されます。これらの変数をクエリ文字列の一部として (GET を使用してフォームを送信することにより) download.cfm に渡すため、フォーム スコープには存在しません。

2 つの迅速かつ簡単な解決策を考えることができます。

まず、参照をform.startdateおよびおよびform.enddateにそれぞれ変更できます。クエリ文字列の一部として渡された変数 (GET を実行する場合など) は、フォーム スコープ (POST を実行する場合) ではなく、url スコープの一部になります。url.formdateurl.enddate

次に、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#">

これにより、最初に url スコープの値がフォームを表示するページと同じ値にパラメーター化され、次にフォーム スコープ内の同じ変数名が URL スコープ内の同じ変数名の同じ値にパラメーター化されます。

于 2013-07-30T00:53:33.867 に答える
0

疑問符の代わりにenddateの前にアンパサンドを使用し、パス変数の前にアンパサンドを追加します

window.location.href='Download.cfm?startdate=#form.startdate#&enddate=#form.enddate#&path=http://abc.xyz.com/<username>/Testing/Testing/Download.cfm'
于 2013-07-29T22:20:19.033 に答える
0

問題を解決する最も簡単な方法は、2 番目のボタンを取り除くことです。これは必要ではなく、あなただけでなくユーザーも混乱させるでしょう。フォームメソッドは「get」であるため、2 つのフォームフィールドは URL スコープの一部になり、これが必要なようです。

また、フォーム変数は、2 つの入力の値属性のどこから来ているのでしょうか?

于 2013-07-29T22:53:39.877 に答える