2009-04-24 18 views
2

我有一個窗體,文本輸入和一個提交按鈕。如何將文本框的值追加到表單的動作即html附加文本值來形成動作

行動=「https://www.mywebsite.com/」 & txtSessionId

的形式如下:

<form name="form1" method="post" action="https://www.mywebsite.com/"> 
    <label>Your Sessions ID: 
    <input type="text" name="txtSessionId" id="txtSessionId"> 
    </label> 
    <label> 
<input type="submit" name="btnContinue" id="btnContinue" value="Continue"> 
</label> 
</form> 

我想要鏈接看起來像這樣:https://www.mywebsite.com/123456

其中123456被用戶輸入到文本框中。

謝謝

回答

2

你必須要麼使用JavaScript或一些服務器端要做到這一點(或兩者)。

的Javascript:

<form name="form1" method="post" action="https://www.mywebsite.com/" 
    onsubmit="location.href = this.action + this.txtSessionId.value; return false;"> 

服務器端(PHP)

if (!empty($_POST['txtSessionId'])) 
{ 
    header('Location: https://.....' . (int)$_POST['txtSessionId']); 
    exit(); 
} 
+0

謝謝,我用JavaScript方法(在一個drupal塊),它的工作完美。 – Belliez 2009-04-24 16:36:24

0

我假設你使用像國防部重寫你的服務器上,如果你接受這樣的網址。那麼,爲什麼不寫一個規則來檢查是否設置了txtSessionId,然後將它重寫到任何你想要的內容?

我不知道如何編寫mod-rewrite規則,但是,我絕對知道你可以做到這一點。

如果您使用的是PHP,Greg確實提供了使用mod-rewrite(或類似的)的一個相當可行的替代方案。

1

正確的行爲是將輸入字段發送到現有窗體,處理它並重定向。您不知道用戶是否發送了有效的輸入值!

在這種情況下,我總是推薦JavaScript,除非可訪問性是對您的嚴格要求。