Ruby on Rails: Checkboxen

Dieser Artikel wurde von Do, Hoang Viet am Donnerstag, 17. Januar 2013 verfasst. Aktualisiert: 28.01.2014 18:52:52

Mit HTML definierten Checkboxen könen Benutzer mehrere Optionen gleichzeitig auszuwählen. Wie dieser Werte auf Serverseite von Ruby on Rails ausgelesen werden können, zeigt der aktuelle Artikel.

Das []-Suffix

Damit alle Werte an Rails geschickt werden, müssen die Werte für das Namensattribut der jeweiligen Checkboxen mit einem [] ergänzt werden wie im nachfolgendem Beispiel:

<%= form_tag('search') do %>
  <input type="checkbox" name="essen[]" value="Nudeln" id="n"/><label for="n">Nudeln</label>
  <input type="checkbox" name="essen[]" value="Hamburger" id="b"/><label for="b">Hamburger</label>
  <input type="checkbox" name="essen[]" value="Bockwurst" id="w"/><label for="b">Bockwurst</label>
<% end %>

Wählt der Benutzer im obrigen Beispiel nun alle 3 Speisen, können wir über nachfolgende Anweisung auf die Werte zugreifen:

params[:essen] # => ['Nudeln', 'Hamburger', 'Bockwurst']

Würden wir die Klammern weglassen, würden wir lediglich die letzte Auswahl als einzelne Wert bekommen ungeachtet, ob wir als Methode POST oder GET nutzen.

params[:essen] # => 'Bockwurst'

Mehrdimensionale Arrays

Das können wir auch beliebig verschachteln

<%= form_tag('search') do %>
  <input type="checkbox" name="essen[gast1][]" value="Nudeln" id="n"/><label for="n">Nudeln</label>
  <input type="checkbox" name="essen[gast1][]" value="Hamburger" id="b"/><label for="b">Hamburger</label>
  <input type="checkbox" name="essen[gast1][]" value="Bockwurst" id="w"/><label for="b">Bockwurst</label>
<% end %>

Auf Serverseite rufen wir nun

params[:gast1][:essen] # => ['Nudeln', 'Hamburger', 'Bockwurst']

 

 
blog comments powered by Disqus

Google Anzeigen

Neusten Blogeinträgen

  • CSS: Animationen

    CSS3 bietet von Haus aus Möglichkeiten zur Definition von Animationen über die Property animation. Wie es funktioniert zeigen wir in diesem Artikel.

  • CSS: Alternierende Tabellenzeilen

    Um die Lesbarkeit von Tabellen zu steigern, bietet die CSS die Möglichkeit Tabellenzeilen alternierend zu färben. Wie das funktioniert zeigen, wir ...

  • Unity3D: Konsolenausgabe formatieren

    Die Unitykonsole ist einer der meistgenutzten Feature wenn es bei Unity um Fehlersuche und -behandlung geht. Sie wird dabei schnell voll und verli ...

  • Unity3D: Singleton für langsame Operationen

    Operationen wie Object.FindObjectOfType werden in der Dokumentation von Unity3D Entwickler selbst als sehr langsam beschrieben. Aus dem Grund wird ...

  • Unity3D: Optionale Parameter

    Unity3D (4.3.1) unterstützt keine optionale Parameter, wenn die betroffene Skriptdatei in einem Namespace definiert wird.

Popular Threads

Share it on your network