我有:
<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>
这工作正常。myModal
div 标签由正确的值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),除了部分。它没有正确渲染。
地图.js.erb
$("#myModal").html("<%= escape_javascript(render(@details))%>");
_details.html.erb
<h3><%= @details.famid %></h3>
地图.html.erb
<div id="myModal">
<%= render @details %>
</div>
更新:
现在部分在浏览器控制台中正确呈现。我可以看到#myModal
div 被正确填充。但它仅显示在浏览器控制台中,而不显示在map.html.erb
页面上。这里有什么问题?