2016-06-16 13 views
-1

Ich habe ein Problem. Ich möchte meine Tabellendaten aus der Datenbank mit ausgewählten Werten für das Auswahlfeld (Dropdown) aktualisieren. Und ich denke Ajax ist eine Lösung. Aber wie kann ich es tun?
Hier ist mein Select-Tag in VIEW. Meine Ansicht ist writtin in haml

Update-Tabelle von der Datenbank mit Ajax in Schienen

%select{:name => "options", :id=>"select_other_month"} 
      %option{:value => "0"} Other Months 
      %option{:value => "5"} 5 
      %option{:value => "4"} 4 
      %option{:value => "3"} 3 
      %option{:value => "2"} 2 
      %option{:value => "1"} 1 

und hier meine Tabelle ist

.table{:id=>"admin_time_table"} 
     %table{:border=>"1"} 
      %tr 
       %th No 
       %th Name 
       %th Total day 
       %th Total time 
      [email protected] = 1 
      [email protected] do |u| 
       %tr 
        %[email protected] 
        %td=u.firstname 
        %td=u.total_day 
        %td=u.total_time 
       [email protected] = @i +1 

und mein Controller sieht aus wie

@users = User.where(:type_id=>0) 

ich meine, wenn ich 4 in Drop-Down wählen, Tabellendaten wurden mit April-Daten aus der Datenbank neu geladen.
Hinweis: Meine Datenbank ist mysql.
Sorry für mein schlechtes Englisch.

+0

Fragen Sie nach einem Tutorial zur Verwendung von Ajax mit Rails, oder wo ist es am besten, es in diesem Code einzufügen? –

+0

Ich frage, wie man Ajax mit Rails verwendet –

+0

Dann ist Ihre Frage viel zu weit gefasst - beginnen Sie mit dem Lesen des [Rails guide to JS] (http://edgeguides.rubyonrails.org/working_with_javascript_in_rails.html) –

Antwort

0

1) Setzen Sie Ihre Auswahl in das Formular mit remote: true Option. Das wird es durch Ajax einreichen lassen. Kann auch einen JavaScript-Listener einrichten, um ihn jedes Mal zu senden, wenn er sich ändert. Sie sollten sehen, dass es an diesem Punkt auf den Schienenserver trifft und einen Routingfehler erhält.

2) Richten Sie die Route für diese Aktion ein.

3) in einer Steueraktion

4) in einer Ansicht action.js.erb den select_other_month Wert von params

gelesen ( js hat) zu sein. tun $("#admin_time_table").html("<%= j render partial: 'table' %>"). Wo die Tabelle Teil ist die Ersetzung mit Daten für die angegebenen type_id

Sie müssen spielen und zwicken es, damit es mit Ihrem System arbeiten. Aber Sie erhalten die Idee