Formular Felder prüfen

LoMo

Erfahrenes Mitglied
Hallo,

ich habe ein Suchformular, in den ich bevor ich es abschicke überprüfen bzw. berichtigen will.

HTML:
 <form name="form1" method="get" action="Firmenanzeige.php" onSubmit="return formular_berichtigen();">

Code:
<script language="JavaScript" type="text/javascript"> 
<!-- 

function formular_berichtigen()
{
	 alert("Er ist endlich drin JUHU");
	 If (document.Formular.Firmenname.value == "" and document.Formular.LKZ.value == "" and document.Formular.Bundesland.value == "" and document.Formular.Landkreis.value == "" and document.Formular.Ort.value == "" and document.Formular.Produkt.value == "" and document.Formular.Branche.value == "" and document.Formular.Produktgruppe.value == "" amd document.Formular.Marke.value == "")
	 {
	 	alert("Bitte geben Sie ein Suchkriterium ein");
		document.Formular.Firmenname.focus();
		return false;
	 }
	 
	 document.Formular.Firmenname.value = "%".document.Formular.Firmenname.value."%";
	 document.Formular.LKZ.value = "%".document.Formular.LKZ.value."%";
	 document.Formular.Bundesland.value = "%".document.Formular.Bundesland.value."%";
	 document.Formular.Landkreis.value = "%".document.Formular.Landkreis.value."%";
	 document.Formular.Ort.value = "%".document.Formular.Ort.value."%";
	 document.Formular.Produkt.value = "%".document.Formular.Produkt.value."%";
	 document.Formular.Branche.value = "%".document.Formular.Branche.value."%";
	 document.Formular.Produktgruppe.value = "%".document.Formular.Produktgruppe.value."%";
	 document.Formular.Marke.value = "%".document.Formular.Marke.value."%";
	 
	 if (isset(document.Formular.SAuswahl.value))
	 {
	 	document.Formular.SAuswahl.value = "";
	 }
	 return true;
}
 
//--> 
</script>

Aber aus welchen Grund auch immer springt er nicht in die Funktion bzw. ruft sie auf. Weiss jemand wo der Fehler liegt ? Die Funktion ist im Header definiert.

mfg lomo
 
Hi,

weshalb die Funktion bei dir nicht aufgerufen wird, kann ich dir nicht beantworten. Habe das Formular
hier nachgestellt und es funktioniert einwandfrei.

Allerdings muss dein Script nachbearbeitet werden.
  • Du prüfst in deiner ersten if-Bedingung, ob alle Felder leer sind (UND-Verknüpfung) und gibst
    nur dann eine Fehlermeldung aus. Hier sind jedoch eine ODER-Verknüpfungen notwendig.
  • Die if-Bedingung in JavaScript wird klein geschrieben.
  • Strings werden in JS mit dem Pluszeichen verkettet.
  • Die isset-Funktion ist nicht bekannt (ist PHP-Code).
  • Der Formularname ist "form1" und nicht "Formular".
Mit folgendem Quellcode funktioniert das Formular und der Check:
HTML:
<?xml version="1.0" encoding="iso-8859-1"?>
<!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">
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese" />
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript">
  <!--

function formular_berichtigen()
{
	 alert("Er ist endlich drin JUHU");
	 if (document.form1.Firmenname.value == "" || document.form1.LKZ.value == "" || document.form1.Bundesland.value == "" || document.form1.Landkreis.value == "" || document.form1.Ort.value == "" || document.form1.Produkt.value == "" || document.form1.Branche.value == "" || document.form1.Produktgruppe.value == "" || document.form1.Marke.value == "")
	 {
	 	alert("Bitte geben Sie ein Suchkriterium ein");
		document.form1.Firmenname.focus();
		return false;
	 }

	 document.form1.Firmenname.value = "%"+document.form1.Firmenname.value+"%";
	 document.form1.LKZ.value = "%"+document.form1.LKZ.value+"%";
	 document.form1.Bundesland.value = "%"+document.form1.Bundesland.value+"%";
	 document.form1.Landkreis.value = "%"+document.form1.Landkreis.value+"%";
	 document.form1.Ort.value = "%"+document.form1.Ort.value+"%";
	 document.form1.Produkt.value = "%"+document.form1.Produkt.value+"%";
	 document.form1.Branche.value = "%"+document.form1.Branche.value+"%";
	 document.form1.Produktgruppe.value = "%"+document.form1.Produktgruppe.value+"%";
	 document.form1.Marke.value = "%"+document.form1.Marke.value+"%";

	 if (document.form1.SAuswahl.value)
	 {
	 	document.form1.SAuswahl.value = "";
	 }
	 return true;
}
 //-->
</script>
</head>
<body>
<form name="form1" action="Firmenanzeige.php" method="get" onsubmit="return formular_berichtigen();">
	<div><input type="text" name="Firmenname" value="" /></div>
	<div><input type="text" name="LKZ" value="" /></div>
	<div><input type="text" name="Bundesland" value="" /></div>
	<div><input type="text" name="Landkreis" value="" /></div>
	<div><input type="text" name="Ort" value="" /></div>
	<div><input type="text" name="Produkt" value="" /></div>
	<div><input type="text" name="Branche" value="" /></div>
	<div><input type="text" name="Produktgruppe" value="" /></div>
	<div><input type="text" name="Marke" value="" /></div>
	<div><input type="text" name="SAuswahl" value="" /></div>
  <div><input type="submit" name="cmdButton" value="check" /></div>
</form>
</body>
</html>
Ich hoffe, das hilft dir weiter.

Ciao
Quaese
 
ääähhhhhhhmmmmmmmm frag mich nicht warum aber ich habe gerade deine Verbesserungen eingefügt und jetzt wird die Funktion aufgerufen. *g*. Naja hauptsache es funktioniert. Vielleicht waren ja so viele Fehler drin das er keine Lust hatte reinzugehen :D

VIELEN VIELEN DANK. Ich währ fast verzweifelt :D. Hat mir sehr geholfen
 
Weist du vielleicht wie ich das machen könnte ?

Ich will bei der Fehlerprüfung prüfen ob z.b. bundesland existiert (ob es ausgefüllt wurde) falls nicht soll ' %' zugewiesen werden und wenn was drin steht ("Bayern") dann soll z.B. '%Bayern%' reingeschrieben werden.

Des || must noch mit && ersetzen weil er soll in die Fehlerprüfung nur reinlaufen wenn kein Feld ausgefüllt wurde.

Weist du wie man das realisieren könnte ?

mfg lomo
 
Hi,

jetzt hab ich es kapiert - es muss mindestens ein Suchkriterium eingegeben werden - da sind die
UND-Verknüpfungen natürlich korrekt - so früh am morgen funktionieren die grauen Zellen wohl
noch nicht richtig.

Zu deiner Frage:
Prüfe einfach, ob das Feld leer ist und weise entsprechend Werte zu.
Code:
document.form1.Firmenname.value = (document.form1.Firmenname.value != "") ? ("%"+document.form1.Firmenname.value+"%"):"%";
Für die anderen Felder entsprechend anpassen.

Ciao
Quaese
 
Weiss jemand wie man des mit Comboboxen (<select></select>) machen kann. Bei denen geht des mit der Value Eigenschaft irgendwie nicht?

mfg lomo
 
Hi,

setze in der Combobox als ersten Wert einen Default-Wert. Diesen prüfst du in deiner Funktion
ab. Wurde keine Option ausgewählt, wird der Default-Wert gefunden. In diesem Fall weist du
einem versteckten Feld "%" zu, wurde eine Option gewählt, weist du dem versteckten Feld den
Wert eingepackt in %-Zeichen zu.

Script:
Code:
function formular_berichtigen()
{
  if (document.form1.Firmenname.value == "" && document.form1.LKZ.value == "" && document.form1.Bundesland.value == "" && document.form1.Landkreis.value == "" && document.form1.Ort.value == "" && document.form1.Produkt.value == "" && document.form1.Branche.value == "" && document.form1.Produktgruppe.value == "" && document.form1.Marke.value == ""){
    alert("Bitte geben Sie ein Suchkriterium ein");
    document.form1.Firmenname.focus();
    return false;
  }

  document.form1.Firmenname.value = (document.form1.Firmenname.value != "") ? ("%"+document.form1.Firmenname.value+"%"):"%";
  document.form1.LKZ.value = (document.form1.LKZ.value != "") ? ("%"+document.form1.LKZ.value+"%"):"%";
  document.form1.Bundesland.value = (document.form1.Bundesland.value != "") ? ("%"+document.form1.Bundesland.value+"%"):"%";
  document.form1.Landkreis.value = (document.form1.Landkreis.value != "") ? ("%"+document.form1.Landkreis.value+"%"):"%";
  document.form1.Ort.value = (document.form1.Ort.value != "") ? ("%"+document.form1.Ort.value+"%"):"%";
  document.form1.Produkt.value = (document.form1.Produkt.value != "") ? ("%"+document.form1.Produkt.value+"%"):"%";
  document.form1.Produktgruppe.value = (document.form1.Produktgruppe.value != "") ? ("%"+document.form1.Produktgruppe.value+"%"):"%";
  document.form1.Marke.value = (document.form1.Marke.value != "") ? ("%"+document.form1.Marke.value+"%"):"%";

  // Falls in Combobox keine Option gewählt wurde
  if(document.form1.Branche[document.form1.Branche.selectedIndex].value == "default"){
    document.form1.hiddenBranche.value = "%";
  // Falls eine Option gewählt wurde
  }else{
    document.form1.hiddenBranche.value = "%"+document.form1.Branche[document.form1.Branche.selectedIndex].value+"%";
  }

  if (document.form1.SAuswahl.value){
    document.form1.SAuswahl.value = "";
  }
  return true;
}
Die Combobox mit dem versteckten Feld könnte zum Beispiel wie folgt aussehen:
HTML:
  <div>
    <select name="Branche" size="1">
      <option value="default">- wählen -</option>
      <option value="branche1">Branche1</option>
      <option value="branche2">Branche2</option>
      <option value="branche3">Branche3</option>
    </select>
    <input type="hidden" name="hiddenBranche" value="" />
  </div>
Ciao
Quaese
 

Neue Beiträge

Zurück