Formularfelder vor dem Absenden prüfen

bmaas

Grünschnabel
Ich möchte gerne meine Formularfelder vor dem Absenden überprüfen. Habe schon einige Tutorials gelesen, funktioniert aber alles nicht so richtig.
Wo liegt der Fehler in meinem Script ?
Code:
<?php

require_once "register.php";

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
	<title>Untitled</title>
</head>

<body>
<h1>Registrierung</h1>

<script type="text/javascript">
<!--
function checkForm()
{
 if(document.form.lname.value == "")  {
   alert("Bitte Ihren Nachamen eingeben!");
   document.form.lname.focus();
   return false;
  }
 if(document.form.fname.value == "") {
   alert("Bitte Ihren Vornamen eingeben!");
   document.form.fname.focus();
   return false;
  }
  if(document.form.address1.value == "") {
   alert("Bitte Ihren Vornamen eingeben!");
   document.form.address1.focus();
   return false;
   }
   if(document.form.address2.value == "") {
   alert("Bitte Ihren Vornamen eingeben!");
   document.form.address2.focus();
   return false;
   }
   if(document.form.zip.value == "") {
   alert("Bitte Ihren Vornamen eingeben!");
   document.form.zip.focus();
   return false;
   }
   if(document.form.city.value == "") {
   alert("Bitte Ihren Vornamen eingeben!");
   document.form.city.focus();
   return false;
   }
   if(document.form.phone.value == "") {
   alert("Bitte Ihren Vornamen eingeben!");
   document.form.phone.focus();
   return false;
   }
   if(document.form.mail.value == "") {
   alert("Bitte Ihren Vornamen eingeben!");
   document.form.mail.focus();
   return false;
   }
   
}
 

//-->
</script>

<?
$Register = new Customer();


if( isset ( $_POST["submit"] ) ) {

?>	

<form action="<?=$_SERVER['PHP_SELF']; ?>" method="post" onSubmit="return checkForm()">
 <input type="hidden" name="lname" value="<?=$_POST['lname']; ?>">
 <input type="hidden" name="fname" value="<?=$_POST['fname']; ?>">
 <input type="hidden" name="address1" value="<?=$_POST['address1']; ?>">
 <input type="hidden" name="address2" value="<?=$_POST['address2']; ?>">
 <input type="hidden" name="zip" value="<?=$_POST['zip']; ?>">
 <input type="hidden" name="city" value="<?=$_POST['city']; ?>">
 <input type="hidden" name="phone" value="<?=$_POST['phone']; ?>">
 <input type="hidden" name="mail" value="<?=$_POST['mail']; ?>">
 
 Name: <?=$_POST['lname']; ?><br>
 Vorname: <?=$_POST['fname']; ?><br>
 Adresse: <?=$_POST['address1']; ?><br>
 Lieferadresse: <?=$_POST['address2']; ?><br>
 PLZ: <?=$_POST['zip']; ?><br>
 Ort: <?=$_POST['city']; ?><br>
 Telefon: <?=$_POST['phone']; ?><br>
 E-Mail: <?=$_POST['mail']; ?><br>
 
 <input type="submit" value="Eintragen" name="submit2">
 </form>

<?

}

else if( isset ( $_POST["submit2"] ) ) {
	
	$Register->setPersonalData();
	
	echo $Register->main();
}
else{

echo $Register->main();


?>


 <form name="form" action="<?=$_SERVER['PHP_SELF']; ?>" method="post" onSubmit="return checkForm()">
 <input type="hidden" name="" value="">
 
  Name: <input type="text" value="" name="lname"><br>
  Vorname: <input type="text" value="" name="fname"><br>
  Adresse: <input type="text" value="" name="address1"><br>
  Lieferadresse: <input type="text" value="" name="address2"><br>
  PLZ: <input type="text" value="" name="zip"><br>
  Ort: <input type="text" value="" name="city"><br>
  Telefon: <input type="text" value="" name="phone"><br>
  E-Mail: <input type="text" value="" name="mail"><br>
  <input type="submit" value="Absenden" name="submit">
  </form>



<? 
} 

?>
</body>
</html>
 
Hi bmaas,

was genau soll denn nicht funktionieren?

Wenn ich Dein Script bei mir ausprobiere funktioniert es, wenn man mal davon absieht, dass immer "Bitte Ihren Vornamen eingeben" erscheint.

Gruß

Torsten
 
Ich kenn mich mit PHP leider (noch) nicht aus, vielleicht liegt es ja an der Überprüfung, oder reicht es, einfach mit
onSubmit="return checkForm()"
die Funktion aufzurufen?! :confused:
Außerdem wäre es möglich, dass du, wenn alles in Ordnung ist, auch mal true zurückgeben solltest!? Ich glaub da müsste irgendwo der Fehler sein.

Wenn das allerdings passen sollte, versuch mal, die ganzen Felder nicht mit
irgendwas.value == "" , sondern mit
if( ! (irgendwas.value.length > 0 ) ).

lg D;-]c
 

Neue Beiträge

Zurück