2016-05-04 7 views
1

どの画像をクリックすることで属性データを渡すために:イメージをクリックして属性データを渡す方法は?

# Something like this I would imagine 
<%= f.select '1.png', ranking: 1 %> 
# or 
<%= f.image_tag '1.png', ranking: 1 %> 

@Tadman

<%= f.hidden_field(:ranking, id: 'ranking') %> 
    <%= image_tag('1.png', data: { rank: 1 }, class: 'image-clicker') %> 
    <%= image_tag('2.png', data: { rank: 2 }, class: 'image-clicker') %> 
    <%= image_tag('3.png', data: { rank: 3 }, class: 'image-clicker') %> 
    <%= image_tag('4.png', data: { rank: 4 }, class: 'image-clicker') %> 
<%= f.hidden_field(:ranking, id: 'image_ranking') %> 
    <%= image_tag('1.png', data: { image_ranking: 1 }, class: 'image-clicker') %> 
    <%= image_tag('2.png', data: { image_ranking: 2 }, class: 'image-clicker') %> 
    <%= image_tag('3.png', data: { image_ranking: 3 }, class: 'image-clicker') %> 
    <%= image_tag('4.png', data: { image_ranking: 4 }, class: 'image-clicker') %> 
基づく試み
<%= f.hidden_field(:image_ranking, id: 'image_ranking') %> 
    <%= image_tag('1.png', data: { ranking: 1 }, class: 'image-clicker') %> 
    <%= image_tag('2.png', data: { ranking: 2 }, class: 'image-clicker') %> 
    <%= image_tag('3.png', data: { ranking: 3 }, class: 'image-clicker') %> 
    <%= image_tag('4.png', data: { ranking: 4 }, class: 'image-clicker') %> 
+0

あなたの質問に[このリンク](http://stackoverflow.com/questions/4941004/putting-images-with-options-in-a-dropdown-list)が回答していますか? –

+0

それは前の質問に光を当てます。私は@MichaelGaskillに尋ねましたが、この質問はありません。この質問はドロップダウンに関するものではありません。ユーザーがイメージをクリックすると、_formのsubmitをクリックすると、そのイメージは 'ランキング:1'を渡します。ご協力いただきありがとうございます! –

+0

おっと、申し訳ありませんが、間違って投稿しました。私はリンクを追加する前に、他のものを探していて、これをクリックしていました。私はそこにそれを追加します。 –

答えて

2

は、通常は、Railsので利用可能な控えめなJavaScriptでこれを行う:

<%= f.hidden_field(:image_ident, id: 'image_ident') %> 
<%= image_tag('1.png', data: { ident: 1 }, class: 'img-clicker') %> 

その後、あなたはjQueryを使ってそれをトリガすることができます:ここ

$('.img-clicker').click(function() { 
    $('#image_ident').val($(this).data('ident')); 
}); 

アイデアは、あなたがに隠されたフィールドを持つことができています選択した画像をキャプチャし、クリックするとdataの値を転送します。その後、クラス情報を追加して、選択したイメージを後で異なるように表示することもできます。

+0

'ident'をどこにでも' ranking'で変更しましたが、 'undefined method image_ranking'というエラーが出ています –

+0

フィールドが' ranking'の場合、 'hidden_​​field(:ranking、...)'はそれを行うべきです。 – tadman

+0

質問を試行して更新しました。 ':ranking'はフィールドです。私は 'hidden_​​field'を使ってコントローラに何かを追加すると思いますか?それは 'hidden_​​field right'ですか? 'hidden_​​field_tag'ではありません –

関連する問題