Gewusst wie: übergeben von Daten von jQuery-controller?
Habe ich zwei Felder - end und start Datum(daterange) und ich sollte geben Sie Sie in die Steuerung und laden Sie diese Seite.
Hier ist mein code aus dem Blick:
<%= 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%>
und generiert HTML() :
<form accept-charset="UTF-8" action="/financial_reports?method=post" method="post"...>
<input id="report_start_date" name="report[start_date]" size="30" type="text" class="hasDatepicker"><script type="text/javascript">
<input id="report_end_date" name="report[end_date]" size="30" type="text" class="hasDatepicker"
<input class="btn wide" id="btn-report" name="commit" type="submit" value="Run Report">
</form>
Kann ich datepicker-Wert wie diese :
$('#datepicker').datepicker({
onSelect: function(dateText, inst) {
$("input[name='report[start_date]']").val(dateText);
}
});
und ich übergeben zu müssen, Sie in die Steuerung und das laden dieser Seite, weil auf dieser Seite controller.
HIER MUSS ich ÜBERGEBEN, JQUERY WERT
@financial_reports = current_user.financial_reports.where(:created_at => start_date.to_date..end_date.to_date)
oder sollte ich noch hinzufügen einer anderen Aktion oder Methode ? Was können Sie vorschlagen ?
- Was Stück des Puzzles, werden Sie fehlen hier? Sind Sie einfach auf der Suche nach einem Weg, um übergeben Sie die Daten an den controller an, bevor Sie das Formular vorgelegt wird?
- Ja. Sollte ich die Seite neu laden, um die übertragung von Daten-controller ?
- Sie können übergeben Sie die Daten an die Steuerung mit AJAX, so dass Sie nie verlassen die Seite. Oder, Sie könnten übergeben Sie die Daten mit AJAX laden Sie dann die Seite in der success Funktion, wenn Sie versuchen zum aktualisieren von Daten auf der Seite. Es ist bis zu Ihnen, wirklich. Wissen Sie, wie Sie zum übergeben von Daten an eine Steuerung, die mit AJAX?
- Nein, ich bin nicht vertraut mit es. Vielleicht kann ich einfach die Seite neu laden und übergeben von Daten ? Was wäre besser ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meiner Meinung nach, mit AJAX und nicht Neuladen der Seite ist die beste Wette hier. Sie sind einfach versuchen zu aktualisieren einiger Daten, und es gibt keinen Grund, um eine vollständige Seite-refresh zu tun. Ich bin kein RoR-Fan, aber es scheint, dass wir können, senden Sie die Daten an den controller-by-doing ->
In deinem RoR-controller erhalten Sie die params-by-doing...
Nun hast du die Daten in Ihrem controller, können Sie die Methode auf es. Dann, wenn Sie bereit sind, senden die Daten zurück
return, print, whatever
Sie tun, um das senden von Daten an die Seite.Auch, RoR standardmäßig (beim Zugriff auf eine controller) erwartet, dass die Ausgabe ein template zu der Ansicht, denn wir wollen einfach nur, um die Daten zu aktualisieren, werden Sie brauchen, um zu stoppen, dass die Standard-Aktion mit sowas ->
Ich hoffe, das war hilfreich. Ich bin nicht wirklich ein RoR Experte, aber dies ist die Methode, die ich in den wenigen Male, die ich versuchte.
Goodluck!
Rails 3 hat jetzt Helfer genau das zu tun, was Sie wollen. Diese sind bekannt als remote-Formulare und links.
In diesem blog-post macht einen guten job zu erklären, was Sie tun und wie Sie funktionieren.