私は持っている:
<p id="click">Click here</p>
コントローラで:
@details=Family.find_by(famid: params[:famid])
respond_to do |format|
format.html
format.json {render :json => @details}
end
と:
$('#click').on('click',function(){
$.ajax({
type: "GET",
data: 'famid='+id,
dataType: "json",
url: "/map",
success: function(data){
document.getElementById('myModal').innerHTML = data.famid
}
});
}
<div id="myModal"></div>
これはうまくいきます。div タグにはmyModal
正しいfamid
値が入力されます。しかし、ajaxを介してコントローラーにデータを投稿し、データベースにクエリを実行して、代わりに変数を使用し@details
たいだけです。だから私は試しました:
$('#click').on('click',function(){
$.ajax({
type: "POST",
data: 'famid='+id,
dataType: "json", //do I need this? should it be html?
url: "/map"
});
}
@details
今、私は次のような変数 を使用したいと思います:
<div id="#myModal"> <%= @details.famid %> </div>
それ、どうやったら出来るの?
更新: わかりました、私は次のことをしましたが、部分的なものを除いてすべて正常に動作します(@Rich & @NitinJのおかげです)。正しくレンダリングされていません。
map.js.erb
$("#myModal").html("<%= escape_javascript(render(@details))%>");
_details.html.erb
<h3><%= @details.famid %></h3>
map.html.erb
<div id="myModal">
<%= render @details %>
</div>
更新:
パーシャルがブラウザ コンソールで正しくレンダリングされるようになりました。#myModal
div が正しく設定されていることがわかります。しかし、それはブラウザコンソールにのみ表示され、map.html.erb
ページには表示されません. ここで何が問題なのですか?