Felix Riesterer: Ein Formular - zwei Aktionen

Beitrag lesen

Lieber Dirk,

dass man <form>-Elemente nicht ineinander verschachteln kann, das hat Dir Gernot schon geschrieben. Meine Lösung in solchen Fällen verwendet verschiedene Submit-Buttons.

<form action="test.php" method="post">  
    <input type="text" name="Text" value="<?php echo $text; ?>" />  
    <input type="hidden" name="Datum" value="<? echo $Datum; ?>" />  
  
    <input type="submit" name="vorschau_button" value="Vorschau" />  
    <input type="submit" name="absenden_button" value="Absenden" />  
</form>

Das PHP-Script prüft dann zuerst, welcher der Submit-Buttons gedrückt wurde.

$meine_aktion = 'zeige_formular';  
  
if (isset($_GET['vorschau_button']) && $_GET['vorschau_button'] != '')  
    $meine_aktion = "vorschau";  
  
if (isset($_GET['absenden_button']) && $_GET['absenden_button'] != '')  
    $meine_aktion = "annehmen";  
  
switch ($meine_aktion) {  
    case 'vorschau':  
       zeige_vorschau();  
    break;  
  
    case 'annehmen':  
       daten_annehmen();  
    break;  
  
    default:  
       echo "Sie haben wohl nur die [Return]-Taste betätigt?!";  
       zeige_formular();  
}

Liebe Grüße aus Ellwangen,

Felix Riesterer.