Hallo,
habe ein Problem mit dem Handling von zwei Formularen innerhalb einer Seite. Es gibt/gab zu diesem Thema zwar schon verschiedene Beiträge, allerdings trifft - soweit ich das sehen kann - keiner mein Problem.
Zu den "Rahmenbedingungen":
Ich habe eine php-Seite (seite1.php), in die eine andere Seite (seite2.php) per include() eingebunden ist.
In der mit include() eingebundenen Seite (seite2.php) befinden sich besagte zwei Formulare, die folgenden Sinn haben:
- Mit dem ersten Formular wird die aktuelle Seite per onChange neu geladen (Auswahl in DropDown-Menü), Seiteninhalt ist dann abhängig von der getroffenen Auswahl. Funktioniert auch prima.
- Mit dem zweiten Formular soll eine neue Seite aufgerufen werden (seite3.php), die Seiteninhalte sollen übergeben werden.
Nun zum Problem:
Die neue Seite wird zwar - laut Adressleiste im Browser - aufgerufen, der Inhalt ist jedoch der der seite2.php (nicht: seite3.php).
D.h. der Inhalt der seite3.php wird nicht angezeigt, obwohl der Name in der Adressleiste steht.
Ich könnte mir nun vorstellen, dass das mit dem include() zu tun hat, komme aber an der Stelle nicht weiter...
Hier noch einige Code-Auszüge:
seite1.php: Abhängig von der Auswahl wird per onChange eine Seite mit include() eingebunden
PHP-Code:
<form>
... ("booking_type" wird per onChange auf var1 oder var2 gesetzt)
</form>
if($_POST['booking_type'] == 'var1') {
include('seiteX.php');
} elseif ($_POST['booking_type'] == 'var2') {
include('seite2.php');
}
seite2.php: Enthält besagte zwei Formulare
HTML-Code:
<form name="jahreswahl" id="jahreswahl" action="<?=$_SERVER['PHP_SELF']?>" method="POST">
<select name="jahr" id="jahr" onChange="document.getElementById('jahreswahl').submit()">
<option value="">Bitte wählen</option>
<?php
for($i=0;$i<3;$i++) {
$cur_year = date(Y) -1 +$i;
if ($_POST['jahr'] == $cur_year) {
echo '<option value="'.$cur_year.'" selected>'.$cur_year.'</option>';
} else {
echo '<option value="'.$cur_year.'">'.$cur_year.'</option>';
}
}
?>
</select>
<input type="hidden" name="booking_type" value="Mitgliedsbeitrag">
<input type="hidden" name="sent" value="1">
<input type="submit" name="self" value="">
</form>
<form name="form2" action="seite3.php" method="POST">
<table>
...
</table>
<input type="submit" name="submit_markieren" value="Nur als bereits bezahlt markieren.">
<input type="submit" name="submit_buchen" value="Als bezahlt markieren und Buchungen durchführen.">
</form> Wenn ich nun einen submit-Button betätige, bekomme ich den Inhalt von seite2.php angezeigt.
Hat jemand eine Ahnung, an was das liegen könnte?