2013-02-23 105 views
0

我有一個datepicker,我想在Movements表的查詢中使用選取的日期來檢索相應的營業額。但「currentDate」不加載picked date:我收到了「無效日期」異常。我應該怎麼做?如何將ajax日期傳遞給jquery?

$("#datepicker").change(function(){ 
     var currentDate = $("#datepicker").datepicker("getDate"); 
     var wantedTO = <%=Movement.where(:movementDate =>Date.parse("currentDate")).sum("turnover")%>; 
     $(document).ajaxComplete(function(){ $("#result").html("<p>Result here : </p>" + wantedTO);  
     });    
    }); 

需要注意的是,如果我取代

var wantedTO = <%=Movement.where(:movementDate =>Date.parse("currentDate")).sum("turnover")%>; 

通過

var wantedTO = <%=Movement.where(:movementDate =>Date.today).sum("turnover")%>; 

它給了我今天的營業額。所以我可能不會那麼遠!

編輯: 可以肯定的日期格式的,我添加了一行

var dateString = $.datepicker.formatDate("yy-mm-dd", currentDate); 

,並檢查OK,如果我把一個手動日期以該格式的話,它的工作。看來這是如何傳遞這個變量的問題,但我無法修復它。任何想法 ?

+0

什麼是使用日期格式 – 2013-02-23 15:35:32

+0

我覺得'Date.parse(「currentDate」)'應該是'Date.parse(currentDate)'。 http://jsfiddle.net/arunpjohny/26sT9/ – 2013-02-23 15:38:34

+0

Date.parse(currentDate)也不起作用。我插入了一個提醒日期格式的警報(currentdate):Sun Feb 2013 2013 00:00:00 GMT + 0100(CET)。在日期選擇器的文本框中,它是02/24/2013。在我的基礎上,這是2013年2月24日。你認爲這是錯誤的原因嗎?我如何糾正它? – 2013-02-24 09:20:04

回答

0

好的,我有我的答案。如果其他新手會面臨同樣的問題,我會對其進行總結。我的代碼中存在一個很大的錯誤:您無法在Ajax代碼中執行ruby查詢。所以啥子,你要做的:

1在控制器中創建一個新的方法(排序)(movements_controller.rb):

def sort 
    selected_date = params[:date] 
    new_html_to_return = Movement.where(:movementDate =>Date.parse(params[:date])).sum("turnover") 
    render :text => new_html_to_return 
end 

2 - 在您的視圖(索引創建POST AJAX功能。 html.erb):

<script> 
$(document).ready(function(){ 
var $datepicker = $("#datepicker"), 
    currentDate = new Date(), 
    dateString = ""; 

$datepicker.change(function(){ 
    currentDate = $datepicker.datepicker("getDate"); 
    dateString = $.datepicker.formatDate("yy-mm-dd", currentDate); 
    $.ajax({ 
     type: "POST", 
     // You're sending the variable to your Ruby on Rails controller 
     url: "movements/sort/", 
     data: {"date":dateString}, 
     }).done(function(data) { 
       $("#result").html("<p>Turnover: </p>" + data) 
     });       
    }); 
}); 
</script> 

3-在你的routes.rb創建相關的路線:

post "movements/sort" 

大功告成!請享用 !