2014-02-04 6 views
0

Мне интересно, могу ли я использовать теги rails в html с помощью jquery для перезагрузки таблицы на основе нового запроса. Смотрите ниже:Использование Rails html-тегов в jquery

<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> 

но если я добавляю рельсы части к нему, то он не обновляется/перезагрузки таблицы. Я посмотрел по всему Интернету и не нашел решения. Я поставил вопрос, подобный этому, но никто не ответил, и он был отклонен из-за недостаточного исследования (это не так), потому что я только задаю вопросы, чтобы ответить, что я не нахожу, может кто-то мне помочь с этим, я бы высоко оценили

RE-ОБНОВЛЕНО

это может быть полезно, чтобы получить возможность отправлять Аякса и 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), который он проходит целое value (#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 в нем, но я не думаю, что это на самом деле повторно excutes рельсам часть <& @pl.each do |f| %>

который затем я вижу ту же таблицу, которая загружается, когда страница была первой открыт. Итак, как мне восстановить рельсы с новой информацией?

Я могу отправить контроллер, если необходимо.

UPDATE Вот контроллер

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 

ответ

1

я смотрел на вашей скрипке.

изменить это

 $('#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) 
       }   
       }); 
+0

Спасибо, что вместе с некоторыми маневрирования сделали именно то, что я хотел – user3240928

0

после этого вы должны де триггером создать как

$ ('#') PlyrsTm2 триггер ('создать').

изменить этот

success:function(success){ 
      $('#PlyrsTm2').html(change1); 
      alert("test 3"); 
      } 

к этому

success:function(data){ 
      $('#PlyrsTm2').html(data); 
      $('#PlyrsTm2').trigger('create'); 
      } 
+0

это перегрузочные то же самое, позвольте мне обновить с тем, что у меня есть в моем Ajax/JQuery – user3240928

+0

Я отвечал, где я поставил спусковую часть, но, похоже, это не трюк – user3240928

+0

должен ли я запускать курок внутри или вне ajax? – user3240928

Смежные вопросы