ObserveFieldを使ってビュー表示の切り替え
リストタグやラジオボタンなどフォームの入力値によって表示内容を切り替えたいと思います。
今回はselectタグ(1)の選択時に別のselectタグ(2)の内容を変化させます。
1.Railsに標準で同胞されているprototype.jsをインクルードします。
<%= javascript_include_tag "prototype" %>
2.formタグのid,nameを指定します。
<%= start_form_tag :controller => 'store' ,:action => 'confirm',:id => 'myform' -%>
※コントローラ、アクションはそれぞれご自信の環境に合わせて変更してください。
3.非同期通信用のヘルバーを挿入
<%= observe_field (:order_type_1 ,
{:frequency => 0.5 ,
:update => 'payment_type',
:url => {:action => 'update_payment'},
:with => "order[type]"}) -%>
※frequency = 実行する秒数
update = 更新するrhtmlの中の指定したエリアです。今回は
4.observe_fieldを実行した際に返すrhtmlの設置
touch store/update_payment.rhtml
5.rhtmlに選択肢の取得用ヘルパーの記載
6.コントローラにメソッドを追加
vi store_controller.rb
def update_payment
@order = Order.new(params[:order])
unless params[:order].type.nil?
@consumer_type = params[:order][:type]
else
@consumer_type = nil
end
render :layout => false
end
このメソッドの中で分岐条件を書いてviewを読み出すようにしてください。
SevenAgent,Inc
1 件のコメント:
parameterのブランクチェックは
params[:hogehoge].blank?
でチェックできます。
コメントを投稿