...das Problem ist, das bei der Auswahl "Bitte auswählen!" dieses nicht als Fehler erkannt und das Formular dann versendet wird.
Anbei ein Auszug als
Testdatei:
PHP-Code:
<?php
error_reporting(E_ALL ^ E_NOTICE);
// Datenbankzugriff
include 'config_db.php';
//Beim Senden eines Formulars die gewählte Auswahl in der Auswahlliste beibehalten.
//--ist Eintrag selektiert?
function isselected($value, $postvalue){
$sel="";
if(isset($postvalue) ){
$sel = ($value== $postvalue) ? ' selected="selected"' : "";
}
return ($sel);
}
/* Formular mit Fehlerauswertung - Dieses Script überprüft ob alle Felder eines Formulars ausgefüllt wurden
und hebt nicht ausgefüllte hervor
*/
$errorFelder = array();
$error = null;
$felder = array("schicht", "ort");
// hier startet die Überpruefung der Eingabe im Formular
if(isset($_POST['ueberpruefung'])) {
$error = false;
foreach($felder as $feld) {
if("" ==($_POST[$feld]) or "*" ==($_POST[$feld]) or "Bitte auswählen! " ==($_POST[$feld])) {
$error = true;
$errorFelder[$feld] = true;
}
}
}
if($error === false) {
echo "Schicht ---> ".$_POST['schicht'];
echo "<br>";
echo "Ort ---> ".$_POST['ort'];
} else {
if($error === true)
echo "<b>Bitte die Rot markierten Felder ausfüllen!</b>";
?>
<style type="text/css">
select.error {
border: red;
border-style: solid;
border-top-width: 2px;
border-right-width: 2px;
border-bottom-width: 2px;
border-left-width: 2px;
}
</style>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<body>
<form class="commentForm" method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>">
<label class="schicht">Schicht</label>
<select name="schicht" id="schicht" <?php if(isset($errorFelder['schicht'])) echo 'class="error"'; ?>>
<?php //Beim Senden eines Formulars die gewählte Auswahl in der Auswahlliste beibehalten.
$sql = "SELECT schicht FROM dropdown_schicht ";
$result = mysql_query($sql);
// für jeden Eintrag ein Option-Tag erstellen
while ($arrschicht = mysql_fetch_array($result, MYSQL_ASSOC)) {
foreach ($arrschicht as $zeile) {
$sel = isselected($zeile, $_POST['schicht']);
echo '<option '.$sel .'>'.$zeile.'</option>';
}
}
?>
</select>
<label class="ort">Standort</label>
<select name="ort" id="ort" <?php if(isset($errorFelder['ort'])) echo 'class="error"'; ?>>
<?php
$sql = "SELECT ort FROM dropdown_ort ";
$result = mysql_query($sql);
// für jeden Eintrag ein Option-Tag erstellen
while ($arrort = mysql_fetch_array($result, MYSQL_ASSOC)) {
foreach ($arrort as $zeile) {
$sel = isselected($zeile, $_POST['ort']);
echo '<option '.$sel .'>'.$zeile.'</option>';
}
}
?>
</select>
<input type="hidden" name="ueberpruefung" value="1">
<input type="submit" class="Button" name="eintragen" id="eintragen" value="Absenden"/>
</form>
</body>
</html>
<?php
}
echo "<pre>";
var_dump($errors);
print_r($_POST);
echo "</pre>";
?>