[英]Using Rails html tags in jquery
我想知道我是否可以使用jquery在html中使用rails标记以基于新查询重新加载表。 见下文:
<table id = "PlyrsTm2" style = float:right>
<tr><th id="PTTitle" colspan=2>List of players on selected team</th></tr>
<tr><th id="PTHRows">Player</th><th id="PTHRows">Team</th></tr>
<% @pl.each do |f| %>
<tr><td class="player"><%= f.Plyr %></td><td class="team"><%= f.Team %></td></tr>
<% end %>
</table>
所以我知道我可以做到这一点:
$('#PlyrsTm2').html('<table id = "PlyrsTm2" style = float:right><tr><th id="PTTitle" colspan=2>List of players on selected team</th></tr><tr><th id="PTHRows">Player</th><th id="PTHRows">Team</th></tr><tr><td class="player"></td><td class="team"></td></tr></table>
但是,如果我将rails部分添加到其中,则它不会刷新/重新加载表。 我在互联网上四处张望,却找不到解决方案。 我发布了与此类似的问题,但没有人回答,由于研究不足(不正确)而被否决,因为我只发布了我找不到的问题,所以有人可以帮我解决这个问题,我会不胜感激
再-更新
发布我正在使用的ajax和jquery可能会有所帮助:
$(document).ready(function(){
$('#showbtn').on('click', function() {
ids = $('#teams').val()
IM = false
$.ajax({
url: "http://localhost:3000/teamplayers.json?resolution="+ids+"&import="+IM,
type:"get",
dataType: "json",
cache: true,
success:function(data){
$('#PlyrsTm2').html(data);
$('#PlyrsTm2').show();
alert(data);
alert("Loading Players....");
},
error: function(error) {
alert("Failed " + console.log(error) + " " + error)
}
});
$('#PlyrsTm2').trigger('create');
});
});
我单击一个按钮(#showbtn),它将一个整数值(#teams)传递给我的控制器,然后将其更改,这是我要加载的表:
'<table id = "PlyrsTm2" style = float:right><tr><th id="PTTitle" colspan=2>List of players on selected team</th></tr><tr><th id="PTHRows">Player</th><th id="PTHRows">Team</th></tr><tr><% @pl.each do |f| %><td class="player"><%= f.Plyr %></td><td class="team"><%= f.Team %></td></tr><% end %></table>
如您所见,其中包含Rails html,但我认为它实际上不会重新执行rails部分<& @pl.each do |f| %>
<& @pl.each do |f| %>
然后我看到第一次打开页面时加载的同一张表。 那么,如何获得新信息重新执行?
如果需要,我可以发布控制器方法。
更新这里是控制器
class TeamplayersController < ApplicationController
before_filter :set_id
before_action :set_id, :set_teamplayer, only: [:show, :edit, :update, :destroy]
# GET /teamplayers
# GET /teamplayers.json
def index
@teamplayers = Teamplayer.all
@fteams = Fteam.all
tid = params[:resolution]
toimport = params[:import]
if tid.nil?
tid = 1
else
tid = tid.to_i;
end
@ids = tid
@pl = Teamplayer.joins(:live_player).where(:teamid => @ids).all << Here should refresh the table
if toimport == "true"
@turl = Fteam.where(:id => @ids).pluck(:TeamUrl)
@turl = @turl[0]
system "rake updateTm:updateA[#{@turl},#{@ids}]"
end
end
我看着你的小提琴。
改变这个
$('#SelectedTm').replaceWith(test2);
},
error: function(error) {
alert("Failed " + console.log(error) + " " + error)
}
});
$('#SelectedTm').trigger('create');
对此
$('#SelectedTm').html(test2);
$('#SelectedTm').trigger('create');
},
error: function(error) {
alert("Failed " + console.log(error) + " " + error)
}
});
在此之后,您必须创建一个触发器
$( '#PlyrsTm2')的触发器( '创建')。
修改这个
success:function(success){
$('#PlyrsTm2').html(change1);
alert("test 3");
}
对此
success:function(data){
$('#PlyrsTm2').html(data);
$('#PlyrsTm2').trigger('create');
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.