Ajaxにてデータ送信後、コントローラ側のアクション内の変数をhtmlに更新する方法がわからないので教えて下さい。
posts/index.html.erbにて
ボタン(id="submit")をクリックすると、jqueryでajaxによるデータのPOST送信を実行します。
データはjson形式で、{"title": "abc"}
としています。
Ajax処理後、部分テンプレート_post.html.erb
を呼び出し、No tile
をabc
に書き換える処理を想定しています。
- index.html.erb
<div id="title">No tile</div> <script> $('#submit').click(function() { $.ajax({ type: "POST", url: "http://localhost:3000/index", dataType: "json", data: {"title": "abc"}, success: function(data) { alert("success"); }, error: function(data) { alert("error"); } }); $('#title').html("<%= escape_javascript(render(:partial => 'post')) %>"); }); </script>
コントローラ側のindexアクションで送信データを受け取り、@title = params[:title]
に代入します。
- posts_controller.rb
ruby
1def index 2 @title = params[:title] 3 4 render :nothing => true 5end
indexページのid="title"
を書き換える部分テンプレートは以下の通りです。
- _post.html.erb
<p><%= @title %></p>
上記を実行しても、<div id="title">No tile</div>
にabc
と表示されないのですが、
どのようにすればよいでしょうか?
よろしくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。