Einzelnen Beitrag anzeigen
  #3  
Alt 10.01.2013, 21:33:09
inspiron inspiron ist offline
Anfänger
 
Registriert seit: Nov 2009
Alter: 68
Beiträge: 51
AW: $_Post auswerten

...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&uuml;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($resultMYSQL_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($resultMYSQL_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>";
?>

Geändert von inspiron (10.01.2013 um 21:56:50 Uhr)
Mit Zitat antworten