2012-05-09 9 views
3

フォームアクションに関する基本的な質問があります。フォームアクション - HREFを呼び出すとき

ここで以下のコードを検討してください。構文があれば無視してください。

<form action="demo_form.asp" method="get"> 
<a href="test.asp">Code testing</a> 
First name: <input type="text" name="fname" /><br /> 
Last name: <input type="text" name="lname" /><br /> 
<button type="submit">Submit</button><br /> 
</form> 

フォームが送信されると、私は以下のようにdemo_form.aspでフォームの変数を処理することができるときdemo_form.aspが呼び出される

request.GET('fname') 

は、どのように私は、フォームの変数を処理することができますtest.aspがHREF経由で呼び出されたとき、私は同じGETメソッドまたはPOSTメソッドを使用できますか?

+3

@JMCCreative:44%それほど悪くありません。私はあなたが電話番号で何を話しているのか分かりません。 – Ryan

+0

ちょうど... 44%は私にとってあまりにも素晴らしいとは思わない。 – JakeParis

+0

どのように私は正しい答えを受け入れることができますか?目盛りをクリックする時間の多く – user1050619

答えて

0

test.aspをリンク(またはあなたが言うようにhref)を使って呼び出すと、GETメソッドを使用してのみ変数を処理できます。したがって、例えばtest.asp?fname=bob&lname=smithがある場合、それらのGET変数はtest.aspで利用可能になります

POSTデータではこれを行うことはできません。

1

ハイパーリンクを使用してデータを送信できる唯一の方法は、GET要求によるものです。これはもちろん、ハイパーリンクにクエリパラメータとして追加されるのではなく、フォームのすべてのフィールドを必要とします。

a要素を変更して、代わりにonclickハンドラとJavaScriptを使用してDOMメソッドを使用してフォームからデータを取得し、href属性を動的に変更してからその特定のアンカータグのclickイベントを発生させることができます。これはGET要求でもあります。

HTML:

<form action="test.asp" id="theForm"> 
    <a href="test.asp?" id="link">Code testing</a> 
    First name: <input type="text" name="fname" /><br /> 
    Last name: <input type="text" name="lname" /><br /> 
</form> 

jQueryの:私はよりDOMについての詳細を学ぶための練習として、他の、これがあなたにもたらすでしょうどのような値はわからない

$('#link').click(function() { 
    var href = ""; 
    $('#theForm > input').each(function(event) { 
     event.preventDefault(); 
     href = $('#link').attr("href") + "&" + 
      $(this).attr("name") + "=" + $(this).attr("value"); 
     $('#link').attr("href", href); 
    }); 
    $(this).click(); // or window.location = $(this).attr("href"); 
}); 

ブラウザがイベントを処理する方法について説明します。

あなたが達成しようとしていることがわからなければ、なぜあなたは単にフォーム自体を使用しているのかわかりません。

+0

ハイパーリンクはフォームデータを含みません。 '

' *自体は 'method =" GET "'として定義することができ、通常の* submit *ボタンを使ってそのデータをGETリクエストとして送ることができます。ただし、アンカータグでも同じことができるHTMLについては、自動的には何もありません。 –

+0

@カーク - これは明確ではないが、私の答えでは、DOMメソッドを使用してフォームからデータを取得するために、「onclickハンドラとJavaScriptを使用する必要がある」と言います。おそらく、ハイパーリンクがデータを取得するまであなたをリダイレクトしないようにするためにevent.preventDefault()が必要であることを追加することで、私は明確にすることができます。あなたは私に例を投稿するよう促しました。 – jmort253

+0

もちろん、フォームデータをハイパーリンク経由で投稿する*唯一の方法は、JavaScriptを使用する方法であることを明確にすれば、すべてが有効です。 –

関連する問題