前回のajaxはrails同士のajaxでした。今回はサーバーはrails,クライアントは通常のajax(jQueryを使っています)
コードは以下のような感じになります。railsが頑張ってくれているので特に難しい事はないです。
xxx.html.erb
補足:/assets/javascripts/コントローラ名.jsにjavascriptを書く場合は以下はいりませんが、xxxx.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" endindex2.js.erb:index2のコントローラーの処理が終了した後このjavascriptがコールされる
$('#hoge').html("<%= @ret %>");routes.rb:ルーティング
post "products/index2"
xxxx.html.erb内では<%= %>は使えますが、コントローラ.js内ではつかえません。
0 件のコメント:
コメントを投稿