Gültigkeitsprüfung!
Markus
- javascript
0 Christian Seiler0 Markus0 Christian Seiler0 Alex
HI Leute!
Wie baue ich folgende Formulargültigkeitsprüfungen auf?
1.
Habe ein Feld "PLZ" und "Ort" es soll überprüft werden ob eine PLZ u Ort kombination überhaupt möglich ist.
zb: möglich: 1010 Wien, 8020 Graz, 4020 Linz
zb: unmöglich 1010 Graz, 8020 Wien, 1010 Linz
Wie geht man das an?
2.
Habe ein Dropdown mit "Bezirk" und "Bundesland" das aus einer DB übernommen wird. Möchte die beiden Dropdowns von einander abhängig machen. Wenn ein Bezirk ausgewählt wird soll das Bundesland dazu ausgewählt werden und wenn ein Bundesland ausgewählt wird sollen die möglichen Bezirke dazu erscheinen.
Es soll auch eine Abfrage nach unmöglichen Kombinationen verhindert werden.
zb: möglich: Bez. Graz-Stadt Bundesland. Steiermark
zb: unmöglich: Bez. Linz-Stadt Bundesland. Steiermark
Wie geht man das an?
Wie könnten Lösungsvorschläge für meine beiden Vorhaben aussehen?
Wäre über eine Hilfe sehr dankbar!
Danke im voraus
MFG
Markus
Hallo Markus,
Wie baue ich folgende Formulargültigkeitsprüfungen auf?
Prinzipiell: JavaScript kann nur dem Komfort des Users dienen, die »richtige« Validierung muss serverseitig stattfinden. (Das weißt Du hoffentlich bereits, aber lieber einmal zu viel gesagt als zu wenig...)
Habe ein Feld "PLZ" und "Ort" es soll überprüft werden ob eine PLZ u Ort kombination überhaupt möglich ist.
zb: möglich: 1010 Wien, 8020 Graz, 4020 Linz
zb: unmöglich 1010 Graz, 8020 Wien, 1010 LinzWie geht man das an?
Du bräuchtest eine Tabelle mit allen Postleitzahlen und allen zugehörigen Ortschaften. Für ein Land ist das praktikabel, wenn Dein Dienst über Österreich (entnehme ich jetzt mal den Beispieldaten) hinaus geht, dann solltest Du diese Art der Überprüfung lassen - Du kannst ja mal ausrechnen, wie viele Postleitzahlen es auf der Welt gibt...
Habe ein Dropdown mit "Bezirk" und "Bundesland" das aus einer DB übernommen wird. Möchte die beiden Dropdowns von einander abhängig machen. Wenn ein Bezirk ausgewählt wird soll das Bundesland dazu ausgewählt werden und wenn ein Bundesland ausgewählt wird sollen die möglichen Bezirke dazu erscheinen.
Hä? Das verstehe ich nicht. Stelle Dir mal folgendes vor:
1. Benutzer wählt als Bundesland Bayern aus. (in österreichischer Geographie bin ich nicht sehr bewandert...)
2. Danach erscheinen nur noch bayerische Bezirke in der anderen Liste.
3. Danach will der Benutzer aber vielleicht doch Erfurth auswählen, doch das gibt es nicht in der Liste, daher entfällt das »wenn Bezirk ausgewählt wird, dann automatisch das richtige Bundesland«
Du musst Dich logisch (nicht technisch) gesehen zwischen einer Abhängigkeit entscheiden.
Es soll auch eine Abfrage nach unmöglichen Kombinationen verhindert werden.
zb: möglich: Bez. Graz-Stadt Bundesland. Steiermark
zb: unmöglich: Bez. Linz-Stadt Bundesland. SteiermarkWie geht man das an?
Naja, Du brauchst wieder eine Tabelle (also quasi ein Array oder eine komplexere Struktur) mit möglichen Bundesländern und möglichen Bezirken.
Technisch gesehen kannst Du so zwei Listen verknüpfen: http://www.xs4all.nl/~ppk/js/options.html
Überprüfung musst Du dann natürlich noch einbauen.
Christian
HI Christian
Danke dass du dich mit meinem Problem beschäftigst.
Die Tabelle hätte ich. Es bezieht sich nur auf Österreich.
Du bräuchtest eine Tabelle mit allen Postleitzahlen und allen zugehörigen Ortschaften. Für ein Land ist das praktikabel, wenn Dein Dienst über Österreich (entnehme ich jetzt mal den Beispieldaten) hinaus geht, dann solltest Du diese Art der Überprüfung lassen - Du kannst ja mal ausrechnen, wie viele Postleitzahlen es auf der Welt gibt...
Müßte schon gehen denn im 3. Fall kann er ja noch immer ein anderes Bundesland auswählen es ist nur eben Bayern ausgewählt wenn er einen bayrischen Bezirk angibt, oder?
- Benutzer wählt als Bundesland Bayern aus. (in österreichischer Geographie bin ich nicht sehr bewandert...)
- Danach erscheinen nur noch bayerische Bezirke in der anderen Liste.
- Danach will der Benutzer aber vielleicht doch Erfurth auswählen, doch das gibt es nicht in der Liste, daher entfällt das »wenn Bezirk ausgewählt wird, dann automatisch das richtige Bundesland«
hab ich eigentlich eh, aber wie setze ich es um?
Du musst Dich logisch (nicht technisch) gesehen zwischen einer Abhängigkeit entscheiden.
die Liste habe ich auch in einer DB.
Naja, Du brauchst wieder eine Tabelle (also quasi ein Array oder eine komplexere Struktur) mit möglichen Bundesländern und möglichen Bezirken.
Finde mich da leider nicht so ganz zurecht auf der Seite womit ich mein Problem lösen könnte..
Technisch gesehen kannst Du so zwei Listen verknüpfen: http://www.xs4all.nl/~ppk/js/options.html
Wie soll ich es mal angehen. Die anderen Überprüfungen hab ich alle schon ob was ausgefüllt ist und gültige Zeichen usw...
Nur da mangelt es leider an meinem Wissen..
Ein paar praktische Ansätze wären sehr hilfreich.
Danke
MFG
Markus
Hallo Markus,
Müßte schon gehen denn im 3. Fall kann er ja noch immer ein anderes Bundesland auswählen es ist nur eben Bayern ausgewählt wenn er einen bayrischen Bezirk angibt, oder?
Natürlich. Aber dann brauchst Du nicht automatisch das Bundesland zu wechseln, wenn Du einen anderen Bezirk auswählst. Wie ich gesagt habe: Eine der beiden Möglichkeiten muss weg.
Finde mich da leider nicht so ganz zurecht auf der Seite womit ich mein Problem lösen könnte..
Wo ist Dein Problem genau?
Wie soll ich es mal angehen. Die anderen Überprüfungen hab ich alle schon ob was ausgefüllt ist und gültige Zeichen usw...
Nur da mangelt es leider an meinem Wissen..
Ein paar praktische Ansätze wären sehr hilfreich.
Prinzipiell: Du hast die Daten schon in einer Datenbank. Fangen wir mal mit den Postleitzahlen an: Du musst die Datenbanktabelle für JavaScript verfügbar machen. Da aber die Datenbank auf dem Server läuft und JavaScript auf dem Client, ist das erst einmal ein Problem. Du musst also JavaScript-Code auf dem Server erzeugen, der dann praktisch die Datenstruktur in JavaScript erzeugt. (klingt jetzt vielleicht doof...)
Der JavaScript-Zielcode könnte dan z.B. so aussehen:
var plz_tabelle = new Array ();
// hier beginnt der erzeugte Code
plz_tabelle['1010'] = 'Wien';
plz_tabelle['8020'] = 'Graz';
//...
plz_tabelle['4020'] = 'Linz';
// hier endet der erzeugte Code
Danach hast Du die Postleitzahltabelle für JavaScript verfügbar gemacht. Eventuell könntest Du die Tabelle ein einziges Mal erzeugen und dann in einer externen .js-Datei abspeichern, das spart Bandbreite.
So - nun hast Du nun Deine Überprüfungsfunktion. Diese holt sich die Informationen aus den Formularfeldern. Wenn jetzt in der Variable »plz« die Postleitzahl steht und in der Variable »ort« der Vort, dann kannst Du Übereinstimmungen ganz einfach überprüfen:
if (plz_tabelle[plz] == ort) {
// stimmt
} else {
// stimmt nicht
}
Natürlich könntest Du das ganze auch mit toUpperCase() kombinieren, so dass die Groß-/Kleinschreibung nicht beachtet wird.
Zum zweiten Problem sage ich erst mal nichts, bis ich weiß, was genau Du am Link, den ich gepostet habe, nicht verstanden hast.
Christian
Hallo
mal was anderes lohntz sich der Aufwand überhaupt
wenn du halt mal n paar schrotteinträge löschen must ist das doch meistens trotzdem weniger aufwand als das was du hier vor hast oder etwa nicht??
gruß
ALex