RoR的新用户,Ajax的使用

时间:2014-03-22 16:00:09

标签: jquery ruby-on-rails ruby ajax ruby-on-rails-4

我是RoR和Ajax的新用户,我在加载页面时遇到问题。 使用基本表单没有问题但是使用Ajax我无法将变量params [:q]发送到我的页面。

我的工作表格(但没有ajax,以及bobo与我下面的formu_players页面类似):

<%= form_tag("/formulaire/bobo", method: "post") do %>
  <%= label_tag(:q, "Nbr participants vers bobo:") %>
  <%= text_field_tag(:q) %>
  <%= submit_tag("Search") %>
<% end %>

我没有使用ajax:

<div id="premier"></div><br/>
<button id="majPremier">maj</button> 

<script>
 $(function() {
     $('#majPremier').click(function() {
        $('#premier').load('formu_players.html').done(alert("popup maj"));
     });
 })
</script>

有我的页面&#39; formu_players.html&#39; (.erb):

<%- tab = (1..(params[:q].to_i)).to_a %>
<p>Players :</p><br/>
<%= form_tag("/articles/bubu", method: "post") do %>



<%- tab.each do |player|  %>
  <%= label_tag(:"q#{player}", "Player#{player}: ", :class =>"autocomplete") %>
  <%= text_field_tag(:"q#{player}","", :class =>"autocomplete") %>
  <br/>
<%  end %>

<%= hidden_field_tag( :pi , params[:q])%>


 <br/>
<%= submit_tag("Go !") %>
<% end %>

我必须使用ajax,因为我想将此页面放在弹出窗口中。所以我想知道如何将有用的变量传送到我的html.erb页面。

谢谢!

1 个答案:

答案 0 :(得分:0)

load并不认为你想传递任何东西。它的第二个参数定义了:

$('#premier')
    .load('formu_players.html', { q: $('#q').val() })
    .done(function () {
        // Note that this has to be done in the callback, not immediately
        alert('popup maj');
    });