33 Stimmen

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.

AntwortenPositivNegativ

Über den Autor

AvatarDer Autor hat keine Kurzbeschreibung seines Profils angegeben.
Profil anzeigen

 

Ähnliche Themen

HTML-Formular mit Daten vorbelegen

Tutorial | 0 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.