我是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页面。
谢谢!
答案 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');
});