あなたは、GETメソッドを使用することはできますが、URLに名前と値のペアを取得します、そして、それは取得しませんテンプレートをアップ。あなたは、このフォームに "5" と入力した場合:?オン提出
<form action="/orders" method="get">
<input type="text" name="id"/>
<input type="submit" value="Submit"/>
</form>
、あなたはID = 5 URL /注文を取得し、ではない/受注/ 5ます。
すると、あなたが/受注/ 5を探しているなら、いくつかのjQueryを使って簡単に十分に行うことができます。
<script type="text/javascript" language="javascript">
$("form").submit(function() {
// prevent the default GET form behavior (name-value pairs)
event.preventDefault();
// Get the action attribute
var action = $("form").attr("action").toLowerCase();
// For each form element found, replace {elementName} in the action attribute to build a URL from template
var values = $("form").serialize().split("&");
for (var i = 0; i < values.length; i++) {
var tokens = values[i].split("=");
action = action.replace("{" + tokens[0].toLowerCase() + "}", tokens[1]);
}
// Send the user off to the URL w/ template elements replaced
window.location.href = action;
});
</script>
あなたは、いくつかは、おそらくエスケープ追加し、テンプレート入力されたときの状態を処理しなければなりませんいくつかの他の辺のケースをテストするかもしれませんが、上記のコードは基本的なケースで任意の数のテンプレート要素で動作し、上記の/ orders/5を取得します。
アクション属性はタイプミスですが、修正しました。 –
@ハリーはまだ同じ問題が..? –
実際には、特定のIDを持つフォームをレンダリングするのではなく、入力からIDを入力したフォームを送信したいと考えています。 –