2012年3月4日日曜日

rails 3.1 でのajax 3

前回のajaxはrails同士のajaxでした。今回はサーバーはrails,クライアントは通常のajax(jQueryを使っています) コードは以下のような感じになります。railsが頑張ってくれているので特に難しい事はないです。 xxx.html.erb
<%= submit_tag '送信', :onclick => ("submit('');") %>
html内のjavascript:ajax非同期送信
function submit(send_data){
$.ajax({
type: "POST",
url: "http://192.168.100.242:3000/products/index2.html",
data: "data1=John&data2=Boston",
success: function(msg){/*alert(msg);*/}
});
}
こちらでも問題は有りません。
function submit(send_data){
$.ajax({
type: "POST",
url: "/products/index2",
data: "data1=John&data2=Boston",
success: function(msg){/*alert(msg);*/}
});
}

html.erbに書く場合は以下のようになります。

html
コントローラー:ajax送信がここに入ってくる
def index2
    @ret = "return data"
end
index2.js.erb:index2のコントローラーの処理が終了した後このjavascriptがコールされる
$('#hoge').html("<%=  @ret %>");
routes.rb:ルーティング
post "products/index2"
補足:/assets/javascripts/コントローラ名.jsにjavascriptを書く場合は以下はいりませんが、xxxx.html.erbに書く場合は以下は必要です。

xxxx.html.erb内では<%= %>は使えますが、コントローラ.js内ではつかえません。

0 件のコメント:

コメントを投稿