Hallo,
in einem Formular befinden sich Dropdown Felder deren Inhalt aus einer DB gefüllt werden.
Abhängig von der Auswahl soll eine Auswertung gemacht werden ob
" ", = leer
"*", = Trenner für die Übersicht im Dropdown
"Bitte auswählen!" = erster Eintrag im Dropdown
ausgewält wurde.
...ein 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:
in einem Formular befinden sich Dropdown Felder deren Inhalt aus einer DB gefüllt werden.
Abhängig von der Auswahl soll eine Auswertung gemacht werden ob
" ", = leer
"*", = Trenner für die Übersicht im Dropdown
"Bitte auswählen!" = erster Eintrag im Dropdown
ausgewält wurde.
...ein Problem ist, das bei der Auswahl "Bitte auswählen!" dieses nicht als Fehler erkannt und das Formular dann versendet wird.
Code:
Schicht ---> Bitte auswählen!
Ort ---> Bitte auswählen!
NULL
Array
(
[schicht] => Bitte auswählen!
[ort] => Bitte auswählen!
[ueberpruefung] => 1
[eintragen] => Absenden
)
PHP:
Gruß
<?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>";
?>