2012-03-19 7 views
0

<input type=image ...>は、x、y座標を提出するため移動する方法ではありません。POST/PUTアイコンを作成するにはどうすればよいですか?

私はアイコンをクリックすると、私はPOSTまたはPUTとして提出したいので、いくつかform, inputアクションがあるはずです。

<form action="" method="PUT" name="abc_table_form"> 
    display icons 

</form> 

それを行うための正しい方法は何ですか?

ありがとうございました。


<table> 
    <row1> <form action="http://google.com/123/"> <button> icon1 </button></form> </row1> 
    <row2> <form action="http://google.com/456/"> <button> icon1 </button></form> </row2> 
</table> 

フォームは、テーブルに余分なスペースが追加されます。それは醜く見えます。フォーム内のアクションは異なります。<button>formのアクションに基づいています。これに対処する正しい方法は何ですか?

+0

標準のhtml形式を使用してみませんか?

...
'? – haynar

+0

@haynar標準HTMLフォームとは何ですか?私はアイコンの周りに包まれたフォームを持っています。それはあなたが求めていることですか?私はここに来た後にそれを含めたと思う。私の悪い。はい、私はそれを持っています。 – CppLearner

+0

@haynar - それは標準ではありません。 – Quentin

答えて

3

フォームonly support POST and GET

画像入力はPOSTフォームを送信します(ただし、画像はサーバー側の画像マップとして使用するように設計されているため、画像上に座標を送信しない限り実際には適切ではありません)。

<button type="submit"> <img src="..." alt="Submit"> </button>は、イメージを使用してフォームを送信する意味があります(Internet Explorerのバージョンによってはこれに応じて奇数値が送信されます)。

ブラウザから他の方法(つまりPUT)を使用してHTTPリクエストを作成する場合は、XMLHttpRequestを使用してJavaScriptを使用して構築する必要があります。これに対するブラウザのサポートは少し変わります。

+0

ありがとうございます。 'POST'はリソースを作成します。それにもかかわらず、フォームはテーブルをラッピングしています。各行は同じパラメータセットを持っていますが、パラメータは異なります(これは動的Webアプリケーションです)。ボタンの提出は 'form action = 'xxxxxx''に基づいていますか?ありがとう。または各行にフォームをラップする必要がありますか?各行は異なるパラメタをとるためです。 – CppLearner

+0

フォームには表全体を入れることができます。単一のセルにフォームを含めることができます。テーブルの1つの行をラップするフォームを持つことはできません。クロスブラウザ方式で気になる行を見分けるには、[ボタンの名前](http://www.dev-archive.net/articles/forms/multiple-submit-buttons.html)を使います。 – Quentin

1
<table> 
<tr><td> <form action="..." method=POST><button><img src=test.png alt=Test></button> 
    <input type=hidden name=foo value=bar></form> 
<tr> ... 
</table> 

つまり、各画像をボタンでラップし、ボタンを独自の形式でラップします。フォームのすべてが同じaction属性を持っていても、異なるデータ(この例ではパラメータfooの異なる値)を純粋なHTML形式で渡すためには、別々のフォームが必要です。理由は、隠しフィールドを使用してこれを行い、囲むフォームに関連するためです。スタイリング

、これらの検討:

形{ディスプレイ:インライン。 } button {border:none;パディング:0; }

画像がクリック可能なように見えるようにするため、ページ上の散文で説明する必要があります。

フォームを表の行にラップさせることはできません(もちろん、1行のテーブルの場合は除く)。それぞれのフォームの中にさまざまなパラメータを別々に入れておかなければなりません(異なったフォーム内に同じinput type=hidden要素を持つことに問題はありません)。とにかくプログラムでページを生成している可能性がありますし、プログラムは鈍いことをしたいと思っています。

+0

ありがとう! – CppLearner

+0

@CppLearner、いいえ、 'display:inline'は、いくつかのフォームに表示される余分なスペースを削除することを意図しています(ほとんどは、ほとんどの場合、表示されます)。これらの2つの設定を削除すると、画像はボタンの中に座っているように見えますが、しかし、それを達成する別の方法は、画像そのものをボタンのようにすることです。この場合、ボタン内のボタンが奇妙に見えるため、デフォルトの機能を削除するほうがよいでしょう。 –

関連する問題