Guten Morgen zusammen,
Ich stehe mal wieder vor einem PHP Problem.
Mein Ziel ist ein Formular in mehreren Schritten. Bei jedem Schritt wird die
Eingabe auf Vollständigkeit überprüft und bei leeren Feldern ein Fehler ausgegeben.
Problem:
Wenn man die Felder bei Schritt 2 korrekt ausfüllt, gelangt man auch zum 3. Schritt.
Vergisst man allerdings ein Feld, kann man dies nicht mehr nachtragen. Man bekommt immer wieder angezeigt, dass dieses Feld leer ist.
Vielleicht kann mir ein netter Phpler einen Schubs in die richtige Richtung geben.
Liebe Grüße, Chriz
Hier das Formular:
Klick mich
Und hier mein Quellcode:
PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>New Document</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="css/content.css">
<style type="text/css">
.bew-link1
{padding-top:7px !important;
padding-bottom:8px !important;
background-image:url(images/navi-bew-high.gif) !important;
background-repeat:no-repeat;}
</style>
</head>
<body>
<?php
function dyn_form()
{
global $HTTP_POST_VARS, $HTTP_GET_VARS;
if (isset($HTTP_POST_VARS)) {
//bei POST
foreach ($HTTP_POST_VARS as $key => $elem) {
echo "<input type=\"hidden\" name=\"$key\" value=\"$elem\"><br />";
}
}
else {
//bei GET
foreach ($HTTP_GET_VARS as $key => $elem) {
echo "<input type=\"hidden\" name=\"$key\" value=\"$elem\"><br />";
}
}
} //end function
?>
<?
if(isset($_POST['submit'])) {
//vornametest
if($_POST['vorname'] == "") $error['vorname'] = "Keinen Vornamen angegeben!<br>";
//nametest
if($_POST['name'] == "") $error['name'] = "Keinen Nachnamen angegeben!<br>";
//Geburtstest
if($_POST['geburtsdatum'] == "") $error['geburtsdatum'] = "Kein Geburtsdatum angegeben!<br>";
//Strasse
if($_POST['strasse'] == "") $error['strasse'] = "Keine Straße angegeben!<br>";
//PLZ test
if($_POST['plz'] == "") $error['plz'] = "Keine PLZ angegeben!<br>";
//Ort test
if($_POST['ort'] == "") $error['ort'] = "Keinen Ort angegeben!<br>";
//Allgemeiner Fehlertext, bitte anpassen
$strError = "Es sind Fehler aufgetreten. Bitte überprüfen Sie Ihre Eingaben.";
} if(!$error && $_POST[submit]) {
?>
<!--Wenn Formular 1 Okay, zeige 2. Formular an.-->
<?
if(isset($_POST['submit2'])) {
//vornametest
if($_POST['gewicht'] == "") $error['gewicht'] = "Kein Gewicht angegeben!<br>";
//nametest
if($_POST['groesse'] == "") $error['groesse'] = "Keine Größe angegeben!<br>";
$strError = "Es sind Fehler aufgetreten. Bitte überprüfen Sie Ihre Eingaben.";
} if(!$error && $_POST[submit2]) {
?>
<ul class="bewerbe-navi">
<li class="bew-link0">Schritt 1</li>
<li class="bew-link0">Schritt 2</li>
<li class="bew-link1">Schritt 3</li>
<li class="bew-link0">Schritt 4</li>
<li class="bew-link0">Senden</li>
</ul>
<br style="clear:left;" />
<div id="bewerbung">
Hier waere das 3. Formular!
<? } else { ?>
<ul class="bewerbe-navi">
<li class="bew-link0">Schritt 1</li>
<li class="bew-link1">Schritt 2</li>
<li class="bew-link0">Schritt 3</li>
<li class="bew-link0">Schritt 4</li>
<li class="bew-link0">Senden</li>
</ul>
<br style="clear:left;" />
<div id="bewerbung">
<?if($error) echo '<font color="#CC0000"><strong>'.$strError.'</font></strong></br></br>';?>
<form action="index.php" method="post">
<table>
<tr>
<td>
<table class="formulartabelle">
<form method="post" action="index.php" name="form2">
<tr>
<td>Gewicht</td>
<td><input name="gewicht" type="text" id="formular" value="<?=$_POST['gewicht']?>" <?=$error['gewicht']?'class="error"':''?>></td>
</tr>
<tr>
<td>Größe</td>
<td><input name="groesse" type="text" id="formular" value="<?=$_POST['groesse']?>" <?=$error['groesse']?'class="error"':''?>></td>
</tr>
<tr>
</table>
<div class="unsichtbar">
<?php dyn_form(); ?> <!-- Aufruf der Funktion dyn_form() -->
</div>
</div>
</td>
<td class="sendefeld">
<input name="submit2" type="image" src="images/button-intern-weiter.gif" value="Abschicken"/>
</td></tr></table>
</form>
<? }?>
<? } else { ?>
<ul class="bewerbe-navi">
<li class="bew-link1">Schritt 1</li>
<li class="bew-link0">Schritt 2</li>
<li class="bew-link0">Schritt 3</li>
<li class="bew-link0">Schritt 4</li>
<li class="bew-link0">Senden</li>
</ul>
<br style="clear:left;" />
<div id="bewerbung">
<?if($error) echo '<font color="#CC0000"><strong>'.$strError.'</font></strong></br></br>';?>
<form method="post" action="index.php" name="form1">
<table>
<tr>
<td>
<table class="formulartabelle">
<tr>
<td class="formuname">Vorname</td>
<td><input name="vorname" type="text" id="formular" value="<?=$_POST['vorname']?>" <?=$error['vorname']?'class="error"':''?>></td>
</tr>
<tr>
<td class="formuname">Name</td>
<td><input name="name" type="text" id="formular" value="<?=$_POST['name']?>" <?=$error['name']?'class="error"':''?>></td>
</tr>
<tr>
<td class="formuname">Geburtsdatum</td>
<td><input name="geburtsdatum" type="text" id="formular" value="<?=$_POST['geburtsdatum']?>" <?=$error['geburtsdatum']?'class="error"':''?>></td>
</tr>
<tr>
<td class="formuname">Straße</td>
<td><input name="strasse" type="text" id="formular" value="<?=$_POST['strasse']?>" <?=$error['strasse']?'class="error"':''?>></td>
</tr>
<tr>
<td class="formuname">PLZ / Ort</td>
<td><input name="plz" type="text" id="formular" value="<?=$_POST['plz']?>" <?=$error['plz']?'class="error"':''?> style="width:47px;">
<input name="ort" type="text" id="formular" value="<?=$_POST['ort']?>" <?=$error['ort']?'class="error"':''?> style="width:85px; margin-left:0px !important;">
</td>
</tr>
</table>
</td>
<td class="sendefeld">
<input name="submit" type="image" src="images/button-intern-weiter.gif" value="Abschicken"/>
</td></tr></table>
</form>
<? }?>
</div>
</body>
</html>