2012-10-02 33 views
0

假設我的形式如下:是否可以將url參數傳遞給具有method = post的HTML表單?

<form name="myform" method="post" action="index.html"> 
    <input type="hidden" name="work" id="work1" value="20"> 
    <input type="hidden" name="play" id="play1" value="10"> 
    <input type="submit" name="submit"> 
</form> 

點擊提交發送form.workform.play到的index.html。在一定的公式中使用工作和娛樂的價值。

現在,我需要鏈接到這個網頁發送給幾個人一起工作和娛樂的 預定義值。我試過這個:

www.mysite.com/index.html?work=20&play=10 

不幸的是,這沒有奏效。任何方式來完成這個?

僅供參考,我正在使用ColdFusion服務器。

+0

是 - 如果在服務器上正確地讀取*值。 – 2012-10-02 23:50:25

+1

_「這不起作用」_沒有意義 - 您使用了哪些代碼?你收到什麼錯誤信息? –

+1

(你可能想在適當的地方找到一些''和'value =「#HtmlEditFormat(url.work)#」'')的變體。 –

回答

0

是的,你可以通常傳遞查詢字符串參數。它們只是構成請求的URL的一部分。

服務器端框架是否使它們可用取決於框架。我希望大多數框架都會公開它們,即使請求是POST請求。這些都可以在ASP.Net中找到。我不確定Cold Fusion。

方法= 「POST」

通知瀏覽器以放置形式變量作爲​​HTTP請求後的參數。它並不排除你也包括查詢字符串變量。在網址

0

變量被稱爲GET變量,必須有ColdFusion的某種方式對它們進行檢索。

+1

像這樣 - http://stackoverflow.com/q/1904102/1499781 –

+0

@ZoltanToth這可能實際上工作!...給它一個鏡頭... ... –

6

ColdFusion具有一個稱爲URL的範圍和一個稱爲FORM的範圍,分別用於每個HTTP方法post/get。其他語言混雜在一起。除了優點/缺點之外,一些CFML框架實際上將它們結合起來,並將它們作爲「請求上下文」的一部分提供。

在這種情況下你需要做的是檢查你的值的URL和FORM範圍。或者,您可以將表單方法更改爲「獲取」,以便始終具有URL變量而不是表單變量。通過這種方式,你總是使用URL.variables代替Form.variable

cfparam>設置默認值你,讓變量的存在。這就像cfset>,但只有在缺失值時纔會設置。

所以,在你的代碼的頂部:

//this sets the url value to always be blank unless something is passed in 
<cfparam name="url.work" default="" /> 
//this sets the form value to the url value by default 
<cfparam name="form.work" default="#url.work#" /> 
//you should never actually output user content to the screen, but here it is 
<cfoutput>#form.work#</cfoutput> 

與往常一樣,永遠不要相信用戶提供什麼,在數據庫中使用它或將內容發送回瀏覽器之前清理數據。

2

您遇到的問題是您嘗試在HTML頁面上使用ColdFusion。 'index.html'將不會被ColdFusion解析,除非您特別更改了您的Web服務器以指示由ColdFusion解析的.html文件。

  1. 更改你的 '的index.html' 到 'index.cfm'
  2. 訪問通過URL或表單範圍輸入變量。如果表單是POSTED,則使用FORM範圍(表單。工作或form.play)。如果表單是通過url(?work = 20 & play = 10)完成的,則使用URL範圍。
相關問題