<% form_remote_tag :url => { :action => :add_item_to_fs_items_box} do -%>
<p>損益計算書項目</p>
<%= select_tag 'select_fs_items_1',
options_for_select([["売上高",":net_sales"],["営業利益",":operating_profit"],
["経常利益",":ordinary_income"],["純利益",":net_income"],
["1株当たり純利益",":earnings_per_share"]]) %>
<%= submit_tag '表示項目に追加' %>
<% end %>
コメント(11件)
=が抜けてたり do が入ってたりの意味が理解できないためコメント欄にします。
<%= form_remote_tag(
:update => '更新したいid'
:failure => "alert('失敗')",
:complete => "alert('成功')",
:url => {:action => :add_item_to_fs_items_box}) %>;
成功/失敗いずれも出なければviewのほうが悪い事が考えられ、
失敗が続くようであればclassのほうが悪いか、もしくはviewとclassでidが合ってないなど、
原因はつかめるようになると思います。
=とdoは手元にある参考書の記述に従いました。Rails1.2系の参考書だからでしょうか。私も1.2.6を使っています。
alertは成功が出ました。
def add_item_to_fs_items_box
@item_value = params[:select_fs_items_1]
render :update do |page|
page.insert_html :bottom, 'fs_items_box_1', '<li>aaa<%= @item_value %></li>'
end
end
上記のコントローラのコードを書いたのですが、aaaはビューに表示されても@item_valueが表示されないので、フォームの値を取得する方法が分かりません。。
'<li>aaa<%= @item_value %></li>'
では変数が展開されてないってのが問題点のような・・・。
'<li>aaa' + @item_value + '</li>'
などと変えて試してみてください。
展開に関しては下記参照。
http://www.ruby-lang.org/ja/man/html/_A5EAA5C6A5E9A5EB.html#a.bc.b0.c5.b8.b3.ab
これで根本的解決になるか判らないので引き続きコメント欄。
p.s.
=やdoに関してはこちらの勘違いです。スミマセン。
ポイントの消費についてはあまり気にしていないので、また回答して頂ける事があれば回答欄にも記入してください。
それでは、コメント有難うございました。
最初からコントローラのほうも記述しておいて欲しかった・・・って所でしょうか。
(質問文の文字数制限が厳しいようなので、面倒だとは思いますがコメント欄併用で。)
それ以外、特に追記も思いつきませんし、私もポイントは差ほど気にしてませんので、
締め切りして放置でも、キャンセルでもどちらでも結構です。
コードを記述するって点は既に対応しておられましたね。失礼しました。
私ばかりが回答するのもどうかと思って回答は控えてますが、
ヒントとしては
・draggable_element はエレメントそのものに対して、
・sortable_element は親エレメントに対して
それぞれ指定します。
つまり、現状のように li を page の末尾にただ足しただけだと・・・
ul の子要素として li を追加するようにコントローラを書き直してみてください。
pageが<ul id="fs_items_box_1">要素以外、もしくは:bottom指定では子要素に追加されないと考えればよいのでしょうか?
重ね重ね質問してすいません。。
私は連日、ボケボケのコメントをしてるようだ。
ちょっと休まないといけないな。
<%= sortable_element 'fs_items_box_1' %>
<>はコメント欄用に全角。
色々疑問に答えて頂きありがとうございました。