HTML Formular: Weiterleitung abhängig von Radiobutton oder Checkbox
Tutorial von Progger99 | 06.12.2016 um 14:37
Heute möchte ich euch zeigen, wie ihr eine Weiterleitung mit PHP nach Absenden eines HTML-Formulars realisieren könnt. Die Weiterleitung soll dabei auf eine Seite erfolgen, die abhängig von den Nutzereingaben im Formular ist. Hierzu möchte ich euch sowohl eine Lösung mit Radiobuttons als auch eine weitere Lösung mit Checkboxen präsentieren.
Radiobutton-Weiterleitung
In unserem Formular haben wir drei verschiedene Radiobuttons. Jeder Radiobutton steht dabei für eine andere Seite. Beim Klicken des Submit-Buttons soll also die Weiterleitung auf eine dieser Seiten erfolgen, abhängig davon, welcher der Radiobuttons gewählt wurde.
<form method="post" action="rbverteiler.php"> <label><input type="radio" name="rb" value="1"> Seite 1</label> <label><input type="radio" name="rb" value="2"> Seite 2</label> <label><input type="radio" name="rb" value="3"> Seite 3</label> <input type="submit" value="Submit"> </form>
Auf der Empfängerseite holen wir uns den Zustand der Auswahl über $_POST['rb']. Anschließend benutzen wir eine switch-Bedingung um für jeden Fall eine andere Weiterleitung zu realisieren. Die Weiterleitung erfolgt über die PHP-Funktion header() ausgeführt, der wir eine beliebige URL nach "Location: " übergeben können.
<?php $rb = $_POST['rb']; switch ($rb) { case 1: header("Location: http://www.example.com/seite1.php"); exit; break; case 2: header("Location: http://www.example.com/seite2.php"); exit; break; case 3: header("Location: http://www.example.com/seite3.php"); exit; break; } ?>
Wichtig ist, dass vor Aufrufen der header()-Funktion keine Ausgabe des Skripts passieren darf, da die Weiterleitung ansonsten nicht funktioniert. Es darf also zum Beispiel weder vorher ein echo in dem Skript aufgerufen werden noch darf irgendein Zeichen vor dem anfänglichen "<?php" erscheinen.
Checkbox-Weiterleitung
Als nächstes möchten wir uns eine Weiterleitung abhängig von dem Zustand einiger Checkboxen ansehen. Statt der drei Radiobuttons haben wir nun 3 Checkboxen in unser HTML-Formular eingebaut.
<form method="post" action="cbverteiler.php"> <label><input type="checkbox" name="cb1" value="1"> 1</label> <label><input type="checkbox" name="cb2" value="1"> 2</label> <label><input type="checkbox" name="cb3" value="1"> 3</label> <input type="submit" value="Submit"> </form>
Von den Radiobuttons kann immer nur eine zur gleichen Zeit ausgewählt werden, die Checkboxen dagegen können beliebig kombiniert werden. Während wir bei den Radiobuttons also lediglich drei verschiedene Fälle berücksichtigen mussten, ergeben sich bei drei Checkboxen sieben Kombinationen.
<?php $cb1 = $_POST['cb1']; $cb2 = $_POST['cb2']; $cb3 = $_POST['cb3']; if ($cb1 && $cb2 && $cb3) { // alle selektiert header("Location: http://www.example.com/seite123.php"); exit; } else if ($cb1 && $cb2) { // 1 und 2 selektiert header("Location: http://www.example.com/seite12.php"); exit; } else if ($cb1 && $cb3) { // 1 und 3 selektiert header("Location: http://www.example.com/seite13.php"); exit; } else if ($cb2 && $cb3) { // 2 und 3 selektiert header("Location: http://www.example.com/seite23.php"); exit; } else if ($cb1) { // nur 1 selektiert header("Location: http://www.example.com/seite1.php"); exit; } else if ($cb2) { // nur 2 selektiert header("Location: http://www.example.com/seite2.php"); exit; } else if ($cb3) { // nur 3 selektiert header("Location: http://www.example.com/seite3.php"); exit; } ?>
Je nachdem welche der Checkboxen in welcher Kombination gewählt wurden, leiten wir hier auf eine andere Seite weiter. Natürlich wäre es auch genauso möglich, gewisse Fälle zusammenzufassen und nicht für jede Kombination eine Sonderseite anzubieten.
Über den Autor
Der Autor hat keine Kurzbeschreibung seines Profils angegeben.
Profil anzeigen
Ähnliche Themen
HTML-Formular mit Daten vorbelegen
Tutorial | 0 Kommentare
jQuery: DIV-Container abhängig von Checkbox anzeigen oder ausblenden
Tutorial | 2 Kommentare
PHP: Formular mit vielen Checkboxen komfortabel an Skript übergeben
Tipp | 10 Kommentare
HTML5 Canvas als Bild an Server senden und speichern
Tutorial | 0 Kommentare
jQuery: Komplettes Formular abschicken und Inhalt mit Ajax empfangen
Tutorial | 12 Kommentare
Bild vor dem Upload im Browser verkleinern
Tutorial | 5 Kommentare
jQuery: Submit-Button deaktivieren, wenn keine Checkbox ausgewählt ist
Tutorial | 5 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.