Werte von Checkboxen auslesen 
Erstellt man mittels $TCA BE-Formulare, um vom Nutzer Daten eingeben zu können, werden die Werte bei Checkboxen als Dual-Werte in die DB geschrieben.
Doch wie liest man nun aus, welche Checkboxes gewählt wurden? Dazu nutzen wir eine for-Schleife mit einigen speziellen Operationen für bitweises Arbeiten. Als Beispiel und Grundlage dienen die rechts abgebildeten Checkboxen.
1 2 3 4 5 6 7 8 9 | $cats = array(0 => "B2B", 1 => "B2C", 2 => "B2B/B2C", 3 => "B2C/B2B", 4 => "A2A", 5 => "A2C", 6 => "B2A", 7 => "B2E", 8 => "C2B", 9 => "C2C"); for ($i=0; $i<10; $i++) { if (($datenbank_feld >> $i) & 1) { $catsarray[] .= $cats[$i]; } } $catsoutput = implode(", ", $catsarray); $content .= $catsoutput; |
In Zeile 1 schreiben wir die im BE-Formular angegebenen Checkbox-Werte zusammen mit ihren Ordnungsnummern in einen mehrdimensionalen Array:
1 | $cats = array(0 => "B2B", 1 => "B2C", 2 => "B2B/B2C", 3 => "B2C/B2B", 4 => "A2A", 5 => "A2C", 6 => "B2A", 7 => "B2E", 8 => "C2B", 9 => "C2C"); |
Diese lesen wir dann beim bitweisen Durchgehen aus, und geben die entsprechende Bezeichnung aus.
In Zeile 2 startet die Schleife zum bitweisen Durchgehen der Werte:
2 | for ($i=0; $i<10; $i++) { |
Als Parameter ist hier nur die 10 relevant, denn das ist die Anzahl unserer Optionen. Dieser Wert wird je nach der Anzahl unserer Checkboxen vergeben.
In Zeile 3 führen wir das bitweise Verschieben durch:
3 | if (($datenbank_feld >> $i) & 1) { |
Hervorzuhebende Operatoren sind
>> -> schiebe Wert bitweise um x Stellen nach rechts
& -> Bitweises Und
Damit werden nun nacheinander in x Durchgängen alle Stellen durchgegangen, und im nächsten Schritt mit
1 | $catsarray[] .= $cats[$i]; |
in das Array $catsarray[] geschrieben. Der eingangs erstellte Array (mit Count-Parameter $i) $cats[$i] übergibt beim Durchlauf an $catsarray[] die jeweilige Ordnungsnummer.
In der derzeitigen Form haben wir alle gewünschten Werte in einem String in unserem Array. Zur Ausgabe als kommaseparierte Liste trennen wir die Werte mit einem Komma. Dies geschieht mit:
8 | $catsoutput = implode(", ", $catsarray); |
Die Ausgabe erfolgt schließlich über:
9 | $content .= 'Kategorien: '.$catsoutput; |
Die Ausgabe könnte dann in diesem Beispiel so aussehen:
Kategorien: B2B, B2C
Über den Autor
Dieser Beitrag wurde von Oliver Schlöbe verfasst. Er arbeitet als Web- und (TYPO3-)-Entwickler, schreibt redaktionell über Windows Vista/ Windows 7, ist aktives Mitglied bzw. Administrator oder Moderator in diversen Webforen, darunter die TYPO3- und WordPress-Communities, und sammelt seine bisherigen Erweiterungen für diverse Systeme unter http://extend.schloebe.de/Bei Fragen nutzen Sie die Kommentare oder wenden Sie sich an info@typo3.schloebe.de.
Weitere Beiträge von Oliver Schlöbe.
Über diesen Eintrag
Sie lesen gerade “Werte von Checkboxen auslesen,” einen Eintrag auf typo3.schloebe.de
- Veröffentlicht:
- 13.01.08
- Kategorie:
- Entwicklung
- Angesehen:
- 2,007 mal
- Tags:
- :Entwicklung, Extension, Programmierung, TCA
- Drucken:
- Diesen Eintrag drucken




Keine Kommentare
Zu den Kommentaren springen | Kommentare RSS | Trackback URL