2012-05-04 6 views
2

1つのフォーム内に複数の画像があります。クリックした画像に応じて、特定の値がPOSTとともに送信されます。画像にフォームを送信するには

これはjavascriptなしでもできますか? (私はjqueryを使用します)。 = 1入力しないで、

<input type="image" name="type" value="1" src="images/type1.jpg" /> 

しかし、唯一の画像のCOORDSが送信されました:

私はこのような何かを試してみました。

+0

コードなし!いくつかお願いしますか? :) –

+0

画像をどのように表示しますか?

+0

Liam Spencer - 修正済み。 – domino

答えて

5

この問題に対する安全なアプローチは、入力に一意の名前を与え、どの列が座標を送信するかを確認することです。

<input type="image" name="submit_blue" value="blue" alt="blue" src="blue.png"> 
<input type="image" name="submit_red" value="red" alt="red " src="red.png"> 

成功したコントロールのみがデータを送信します。したがって、submit_blue.xに値があるかどうかを調べ、submit_red.xに値があるかどうかをテストします。

JavaScriptを一切使用する必要はありません。

または、サーバー側のイメージマップの代わりに通常の送信ボタンを使用します。

<button name="action" value="blue"><img src="blue.png" alt="blue"></button> 

...それが適切<button>をサポートしていないとして、これは古いIEに壊れることを念頭に。

+0

ボタンメソッドはあまり信頼できないようですが、私はコントロールメソッドが好きです。少し余分な仕事と新しい変数の束が、私はそれと一緒に行くだろうと思う。ありがとう。 – domino

-2

は私のアプローチは、単一の「名前」、およびmultpiple「値」で、複数の画像を定義することです。この

<form id="myform" action="mypage.php"> 
your content form here 
<img scr="img1" class="submitableimage" /> 
<img scr="img2" class="submitableimage" /> 
<img scr="imgn" class="submitableimage" /> 
</form> 
<script> 
    $('img.submitableimage').click(function(){ 
     $('#myform').submit(); 
    }); 
</script> 
+0

*文書全体の画像がクリックされた場合はフォームを送信しますが、サーバーにはその文書がどれであるかを伝えません。 – Quentin

+0

PSはコードを与えません。私はそれがすべてのimg要素のために提出することを知っています。しかし、私は単に例を挙げたい。それはちょうどセレクターであり、画像にはサブミラー可能なクラス名 –

-1

を試してみてください。

<form id="myform" method="post" action="mypage.php"> 
    <input type="image" name="color" value="blue" alt="blue" src="blue.png"> 
    <input type="image" name="color" value="red" alt="red " src="red.png"> 
</form> 

そして、サーバ側で、私は(「青」または「赤」)「カラー」POST変数に直接選択された値を読み取ることができるようになります。

<?php 
if (isset($_POST["color"]) && !empty($_POST["color"])) { 
    $selected_color = $_POST['color']; 
    echo('Selected color is ' . $selected_color); 
    //"blue" or "red" 
}else{ 
    echo ('No image selected'); 
} 
?> 
+0

がある場合は '$( 'img.submitableimage')'のような詳細を与えることができます。これは無効なHTMLです。 'value'属性は' image'入力には適用されません(イメージマップがクリックされたときに信頼できるものではないので、一部のブラウザだけが値を送信します)。 – Quentin

1

jQueryを使用すると、画像をクリックして送信することができます。画像のIDやクラスを追加することができます。

$("#yourImageId").click(function() { 
    $("#yourFormId").submit(); 
}); 
関連する問題