Markus: Gültigkeitsprüfung!

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

  1. 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 Linz

    Wie 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. Steiermark

    Wie 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

    --
    Hast Du einen Beitrag? Nur her damit!
    http://aktuell.de.selfhtml.org/tippstricks/beitrag.htm
    SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
    sh:) fo:) ch:] rl:( br:> n4:& ie:% mo:) va:) de:] zu:) fl:( js:| ss:) ls:[
    1. 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?

      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«

      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

      1. 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..

        http://www.xs4all.nl/~ppk/js/options.html

        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

        --
        Hast Du einen Beitrag? Nur her damit!
        http://aktuell.de.selfhtml.org/tippstricks/beitrag.htm
        SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
        sh:) fo:) ch:] rl:( br:> n4:& ie:% mo:) va:) de:] zu:) fl:( js:| ss:) ls:[
        1. 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