也许没有表格就无法实现这一点,但我想知道。我通过按应用程序管理部分中的按钮来调用 download_pdf 方法。这是工作代码:
<%= button_to t('.download_pdf', :default => "Download PDF BTC Statement"), download_pdf_admin_user_path(@user),
:action => :download_pdf,
:class => "btn btn-success btn-xs" %>
现在,让我们承认我希望允许站点管理员选择开始日期和结束日期,以便将这些参数传递给controller#method,以便生成此日期范围的报告。我尝试了以下方法,但我不知道如何将这些(start_date/end_date)变量传递给 Controller 。这是不起作用的代码(请参阅 button_to 参数中的大写字母):
<input type="text" placeholder="start date" id="start_date" class='datepicker'>
<input type="text" placeholder="end date" id="end_date" class='datepicker'>
<script type="text/javascript">
$(document).ready(function(){
$('#start_date').datepicker();
$('#end_date').datepicker();
START_PLZ = $('#start_date').datepicker().val();
END_PLZ = $('#end_date').datepicker().val();
});
</script>
<%= button_to t('.download_pdf', :default => "Download PDF BTC Statement"), download_pdf_admin_user_path(@user),
:action => :download_pdf,
:params => { start_date: START_PLZ, end_date: END_PLZ },
:class => "btn btn-success btn-xs" %>
有什么方法可以使用这些 JS 变量并在按下按钮时将它们传递给我的generate_pdf 方法吗?否则我可能会使用表格。 任何意见表示赞赏。
最佳答案
Erb 是服务器端模板引擎,因此代码在服务器端执行,而 JS 代码在客户端执行,所以不幸的是没有直接的方法。 但是 我们可以做的是为日期创建另一个表单,并将远程选项设置为true(RAILS AJAX FORM),因此一旦提交,我们就可以将button_to加载到 View 中,现在我们将在参数中包含值。我想应该可以。
关于javascript - 使用button_to时将JS参数传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40129132/