当使用button_to时,传递JS参数给控制器
Pass JS params to controller when using button_to
也许没有表单就没有办法实现这一点,但我想知道。我通过在我的应用程序的管理部分按下一个按钮来调用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" %>
现在,让我们承认我希望允许站点的管理员选择start_date和end_date,以便将这些参数传递给controller#method,以便为该日期范围生成报告。我尝试了以下,但我不知道如何传递这些(start_date/end_date)变量到控制器。下面是不工作的代码(参见button_to参数中的CAPS):
<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代码在客户端,所以不幸的是没有直接的方法。 我们所能做的是创建另一个表单,将remote选项设置为true (RAILS AJAX form),这样一旦提交,我们就可以将button_to加载到视图中,现在我们将在params中拥有值。我想应该有用。
相关文章:
- 将复杂对象从angular js传递到web api,它总是返回404
- 如何将一个*参数*从JS传递到AS3
- 将一个php变量从js传递到php,并返回内容问题
- 如何将chrome.tabCapture流从js传递到c++PNACL本机代码
- 在GoogleWebApp脚本中,Cant似乎无法将多个参数从JS传递到HTML
- 使用Express4将数组从Nodejs中的app.js传递到routes/index.js
- Chrome 打包应用 - 消息从后台传递.js传递到另一个脚本页面
- 将值 fron conf.js 传递给咕噜咕噜的任务或在咕噜咕噜的任务之间传递
- 使用 vent.js 传递参数.如何在触发事件后加载的下一个页面视图中读取该数据
- 反应.js传递参数时路由器不在 URL 中
- 使用 AJAX 调用将数组变量从 JS 传递到 PHP
- 键入提前.js传递动态附加参数
- 从JS传递变量并在PHP中使用它不起作用
- Ember.js传递动态段的方法
- 节点.js传递回调
- 如何在没有jquery的情况下将JavaScript变量从一个JS传递到另一个JS
- 无法将 int 从 JS 传递到 Chrome NPAPI 插件
- 反应.js传递对象键值对作为 props
- 将变量从 js 传递到轨道视图而不刷新页面
- 将变量从 JS 传递到 PHP