如何将数据从jQuery传递到控制器?
我有两个字段-结束和开始日期(daterange),我应该将它们传递到控制器并重新加载此页面。 以下是我在视图中的代码:如何将数据从jQuery传递到控制器?,jquery,ruby-on-rails,view,controller,Jquery,Ruby On Rails,View,Controller,我有两个字段-结束和开始日期(daterange),我应该将它们传递到控制器并重新加载此页面。 以下是我在视图中的代码: <%= form_tag(:controller => "financial_reports", :action => 'index', :method => 'post') do%>//maybe this line should be edited <%= datepicker_input "report","start_
<%= form_tag(:controller => "financial_reports", :action => 'index', :method => 'post') do%>//maybe this line should be edited
<%= datepicker_input "report","start_date", :dateFormat => "dd/mm/yy" %>
<%= datepicker_input "report", "end_date", :dateFormat => "dd/mm/yy"%>
<%end%>
我需要将它们传递到控制器并重新加载这个页面,因为在这个页面控制器中。
这里我需要传递JQUERY值
或者我应该添加另一个操作或方法?你有什么建议?在我看来,使用AJAX而不重新加载页面是最好的选择。您只是尝试更新一些数据,没有理由执行整页刷新。我不是RoR爱好者,但我们似乎可以通过执行->
$.ajax({
type: 'POST',
url: 'path/to/controller',
data: {'start_date' : $("input[name='report[start_date]']").val(),
'end_date' : $("input[name='report[end_date]']").val() },
success: function(data){
//data is whatever you RETURN from your controller.
//an array, string, object...something
}
});`
在RoR控制器中,您将通过执行以下操作获取参数
var the_start = params[:start_date],
the_end = params[:end_date]
现在控制器中已经有了数据,可以对其应用该方法。然后,当您准备返回数据时,return、print,以及您为将数据发送到页面所做的任何操作
此外,RoR在默认情况下(访问控制器时)希望向视图输出模板,因为我们只想更新数据,所以您需要使用类似->
render :layout => false
我希望这是有帮助的。我真的不是RoR专家,但这是我在几次涉猎中使用的方法
祝你好运 Rails 3现在有助手可以完全按照您的要求执行操作。这些被称为远程表单和链接
在解释他们做什么以及如何工作方面做得很好 你在这里遗漏了什么?您只是想在表单提交之前将数据传递给控制器吗?是的。我应该重新加载页面以将数据传递给控制器吗?您可以使用AJAX将数据传递给控制器,这样控制器就不必离开页面。或者,您可以使用AJAX传递数据,然后在尝试更新页面上的某些数据时,在success函数中重新加载页面。这取决于你,真的。您知道如何使用AJAX将数据传递给控制器吗?不,我不熟悉。也许我可以重新加载页面并传递数据?什么会更好?
$.ajax({
type: 'POST',
url: 'path/to/controller',
data: {'start_date' : $("input[name='report[start_date]']").val(),
'end_date' : $("input[name='report[end_date]']").val() },
success: function(data){
//data is whatever you RETURN from your controller.
//an array, string, object...something
}
});`
var the_start = params[:start_date],
the_end = params[:end_date]
render :layout => false