Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains und...
https://www.Hosterplus.de
Artfiles.de
Bietet Serviceorientierte Internetdienstleistungen...
https://www.Artfiles.de
 
 
 

Checkboxen auswerten mit PHP

Sie befinden sich: Home > Php Tutorial > Checkboxen auswerten mit PH...

Checkboxen auswerten mit PHP


Eintrag am:  24.09.2009
Hits / Besucher:  63856
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials...
Tutorial Art:  eigenes
Eingetragen von   schubertmedia schubertmedia
 
Beschreibung

Sie möchten Nutzern die Möglichkeit geben, mehrere Optionen in Ihrem Formular auszuwählen? Checkboxes bieten sich dafür optimal an, weil sie – im Gegensatz zu Radio-Buttons – mehrere gleichzeitige Eingaben zulassen. In diesem Artikel erfahren Sie detailliert, wie Sie Checkboxen in Ihrem Formular einbinden, deren Werte in einem Array sammeln und schließlich mithilfe von PHP auswerten können.

Inhaltsverzeichnis

Was sind Checkboxes?

Checkboxes sind kleine, quadratische Felder in HTML-Formularen, die Sie unabhängig voneinander auswählen können. Sie erlauben eine flexible Mehrfachauswahl und eignen sich insbesondere für Listen von Themen, Eigenschaften oder Kenntnissen. Jede Checkbox kann einen eindeutigen Wert tragen, welcher nach dem Abschicken des Formulars an das Server-Skript übermittelt wird.

Praxisbeispiel: Programmiersprachen abfragen

Stellen Sie sich vor, Sie möchten über ein Formular die Programmiersprachen ermitteln, die Ihre Besucher beherrschen. Bei vielen möglichen Einträgen ist eine einfache Einzelauswahl ungeeignet, weshalb sich Checkboxes ideal anbieten. So kann jemand sowohl PHP als auch Java und MySQL gleichzeitig auswählen.

Checkbox Formular

Im gezeigten Formular können Sie erkennen, dass jede Checkbox den Attributnamen programmiersprachen[] trägt. Durch das []-Symbol werden mehrere Checkbox-Werte automatisch als Array übergeben.

Quellcode-Beispiel

Der folgende Code zeigt Ihnen, wie Sie die Daten im PHP-Skript empfangen, überprüfen und ausgeben können. Sie werden feststellen, dass es nur wenige Codezeilen benötigt, um alle gewünschten Checkbox-Werte zu sammeln.

<?php
 /** Verhindern von Fehlern, falls das Formular noch 
nicht abgesendet wurde */
 if (!isset($_POST['senden'])) {
 $_POST['senden'] = '';
 }

 /** Variable für die Ausgabe der Checkbox-Werte */
 $ausgabe = '';

 /** Prüfen, ob das Formular abgeschickt wurde (senden 
== 1) */
 if ($_POST['senden'] == 1) {

 /** Überprüfen, ob 'programmiersprachen' als Array 
ankommt */
 if (is_array($_POST['programmiersprachen'])) {
  /** Sammeln der ausgewählten Programmiersprachen */
 $i = 0;
 foreach ($_POST['programmiersprachen'] as $sprache) {
 if ($i === 0) {
 $ausgabe .= $sprache;
 } else {
 $ausgabe .= ', ' . $sprache;
 }
 $i++;
 }

 /** Falls mindestens eine Checkbox ausgewählt wurde, 
Ausgabe auf der Webseite */
 if ($ausgabe !== '') {
 echo '<p>Es wurden folgende Programmiersprachen 
angegeben:</p>';
 echo '<p>' . htmlspecialchars($ausgabe) . '</p>';
 echo '<p><a 
href="'.htmlspecialchars($_SERVER["PHP_SELF"]).'">Noch 
mal versuchen</a></p>';
 }

 } else {
 /** Keine Checkbox ausgewählt */
 echo '<p>Es wurde keine Programmiersprache 
angegeben!</p>';
 echo '<p><a 
href="'.htmlspecialchars($_SERVER["PHP_SELF"]).'">Noch 
mal versuchen</a></p>';
 }

 } else {
 /** Anzeige des Formulars, wenn es nicht abgeschickt 
wurde */
?>

<form action="<?php echo 
htmlspecialchars($_SERVER["PHP_SELF"]); ?>" 
method="post">
 <input type="hidden" name="senden" value="1" />

 <p>Welche Programmiersprachen kennen Sie?</p>
 <p>
 <input name="programmiersprachen[]" type="checkbox" 
value="PHP" /> PHP
 <input name="programmiersprachen[]" type="checkbox" 
value="MySQL" /> MySQL
 <input name="programmiersprachen[]" type="checkbox" 
value="Java" /> Java
 <input name="programmiersprachen[]" type="checkbox" 
value="JavaScript" /> JavaScript
 </p>

 <p><input type="submit" value="Absenden" /></p>
</form>

<?php
 }
?>

Checkbox Formular ausgabe

Im obigen Screenshot sehen Sie eine mögliche Ausgabesituation, wenn Sie PHP und MySQL angehakt und das Formular abgeschickt haben.

So funktioniert das Skript

Damit Sie die einzelnen Schritte des Scripts besser nachvollziehen können, ist es sinnvoll, dessen Struktur zu verstehen. Dadurch wissen Sie genau, wo und wie die Checkbox-Eingaben verarbeitet werden.

  • Vorabprüfung der Variablen: Mit isset() wird überprüft, ob das Formular überhaupt schon abgesendet wurde. Falls nicht, werden Standardwerte gesetzt, um Fehlermeldungen zu verhindern.

  • Formularauswertung: Wird $_POST['senden'] auf 1 geprüft, so wissen Sie, dass ein Absenden stattgefunden hat. Anschließend wird $_POST['programmiersprachen'] kontrolliert, um zu sehen, ob die Eingabe als Array vorliegt.

  • Ausgabe der Programmiersprachen: Mit einer foreach()-Schleife iteriert das Skript durch alle ausgewählten Checkbox-Werte. Diese werden in der Variable $ausgabe gesammelt und sicher per htmlspecialchars() ausgegeben.

  • Fehlerbehandlung: Sollten keine Checkboxes angeklickt worden sein, erscheint eine Meldung, dass keine Programmiersprache angegeben wurde.

 

Weiterführende Hinweise

Um tiefer in die Materie einzusteigen, können Sie die folgenden Themen genauer untersuchen. Sie vertiefen nicht nur das Verständnis von Arrays und PHP-Strukturen, sondern helfen auch dabei, ausgefeilte Formulare zu entwickeln.

  • Arrays: Erfahren Sie, wie Arrays aufgebaut sind und warum sie so vielseitig einsetzbar sind.

  • foreach()-Schleife: Perfekt für das Durchlaufen von Arrays und eine besonders lesbare Syntax.

  • for()-Schleife: Nützlich für indexbasierte Vorgänge, wenn Sie gezielt über bestimmte Indizes iterieren möchten.

  • if-Anweisung: Grundlegend, um verschiedene Bedingungen im Code abzufragen und darauf zu reagieren.

  • isset(): Prüft die Existenz von Variablen, bevor Sie sie auswerten und verarbeiten.

  • is_array(): Unverzichtbar, wenn Sie wissen möchten, ob eine Variable ein Array ist.

Erweiterte Tipps zur Checkbox-Auswertung mit PHP

Nachdem Sie das Grundprinzip verstanden haben, können Sie Ihr Formular noch weiter optimieren und an komplexere Anforderungen anpassen. Hier finden Sie ein paar Ideen, die Ihnen helfen, Ihre Checkbox-Abfragen noch vielseitiger zu gestalten.

  • Dynamische Generierung: Wenn Sie Checkboxes aus einer Datenbank abrufen, lassen sich Änderungen an der verfügbaren Auswahl vornehmen, ohne dass Sie Ihren PHP-Code jedes Mal aktualisieren müssen.

  • Verwendung von implode(): Statt die Werte manuell in einer Schleife zusammenzufügen, können Sie das Array mit implode() zu einer Zeichenkette umwandeln (z.B. implode(", ", $_POST['programmiersprachen'])) und direkt ausgeben.

  • Vorauswahl der Checkboxen: Um bestimmte Felder von Anfang an anzuhaken, setzen Sie das HTML-Attribut checked. Achten Sie jedoch darauf, den Nutzer nicht ungewollt zu einer bestimmten Eingabe zu drängen.

  • Sicherheit und Validierung: Achten Sie im Umgang mit Benutzereingaben auf Datensicherheit. Funktionen wie htmlspecialchars() oder filter_input() helfen, um Cross-Site-Scripting (XSS) zu verhindern.

  • Barrierefreiheit: Ergänzen Sie aussagekräftige Labels und nutzen Sie, falls möglich, WAI-ARIA-Attribute. So machen Sie Ihr Formular zugänglicher für Screenreader und Nutzer mit Einschränkungen.

 

Tags:

 

Artikel hinzufügen bei:
         
Bücherregal mit drei Büchern: 'PHP 4 - Grundlagen und Profiwissen' von Hanser Verlag, 'Webdesign in a Nutshell' von O'Reilly Verlag, und 'Webgestaltung' von Galileo Computing.