Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery rails中的Ajax日历更新_Jquery_Ruby On Rails_Ajax_Ruby On Rails 3 - Fatal编程技术网

Jquery rails中的Ajax日历更新

Jquery rails中的Ajax日历更新,jquery,ruby-on-rails,ajax,ruby-on-rails-3,Jquery,Ruby On Rails,Ajax,Ruby On Rails 3,我有一个事件数据库,我希望它显示“今天的事件” 我让那部分工作。在页面底部我有一个日历,当你点击日期时,我希望它更新列出的事件以显示新的日期 我现在有 <% date = Date.current %> <% @events.each do |event| %> <% if event.eventdate === date %> <%= event.title %><br> <% end %> <% end %

我有一个事件数据库,我希望它显示“今天的事件”

我让那部分工作。在页面底部我有一个日历,当你点击日期时,我希望它更新列出的事件以显示新的日期

我现在有

<% date = Date.current %>
<% @events.each do |event| %>
<% if event.eventdate === date %>
    <%= event.title %><br>
<% end %>
<% end %>


例如,按钮是

<button type="submit" id="dateChange" value="01-01-2013">January 1</button>
1月1日
jQuery是

$(document).ready(function() {
    $('#setdate').html("<% date = Date.tomorrow %>")
 });
});
$(文档).ready(函数(){
$('#setdate').html(“”)
});
});
将html更新到明天(作为测试)

两个问题->如何使其更新列出的实际事件,以及如何提取按钮的值并将其用作日期变量


也不确定在我的控制器中要做什么,它只是一个索引函数。

让您的控制器响应JS请求,并将标记生成保留在部分中,这样您就可以轻松地渲染该部分。此外,您还需要确保您的链接/按钮的远程属性设置为true,否则它将无法工作

这里有一个例子,我还没有测试过它,但它应该可以工作

index.html.erb

<div id="events">
    <%= render( 'events_list' ) %>
</div>
<% date ||= Date.current %>
<% @events.each do |event| %>
    <% if event.eventdate === date %>
        <%= event.title %><br>
    <% end %>
<% end %>
<%= link_to "#{date.tomorrow}", events_path({:date => date.tomorrow}), :remote => true %>
...
def index
    @events = Event.all
    @next_date = params[:date]
  respond_to do |format|
    format.html
    format.js # By default this will look for views/events/index.js.erb
  end
end
...
$('#events').html("<%= escape_javascript render( 'events_list', :date => @next_date ) %>");
index.js.erb

<div id="events">
    <%= render( 'events_list' ) %>
</div>
<% date ||= Date.current %>
<% @events.each do |event| %>
    <% if event.eventdate === date %>
        <%= event.title %><br>
    <% end %>
<% end %>
<%= link_to "#{date.tomorrow}", events_path({:date => date.tomorrow}), :remote => true %>
...
def index
    @events = Event.all
    @next_date = params[:date]
  respond_to do |format|
    format.html
    format.js # By default this will look for views/events/index.js.erb
  end
end
...
$('#events').html("<%= escape_javascript render( 'events_list', :date => @next_date ) %>");
$('#events').html(@next_date)%>”;

试试看,让我知道。

你知道我如何创建一个变量,其中包含eventdate===date,我猜你的应用程序使用的是数据库,所以我会开始查看rails文档中的模型和查询界面:例如,你可以在模型中声明一个范围来获取某个日期的所有事件。