Werte suchen über Inputbox

  • Hallo zusammen,


    ich hoffe meine Frage ist nicht ganz doof, bzw. nicht bereits in einem anderen Beitrag gelöst worden:


    Ich habe eine Javascript Datei, welche sich aus einer Excel (via VBA) erstellt mit ca. 8000 Einträgen. Der Aufbau ist wie folgt:


    var Rel01067={ Relation: 'A101', Ort: 'Dresden-01067', Tor: '72', Abfahrt: '2:00'}
    var Rel01069={ Relation: 'A101', Ort: 'Dresden-01069', Tor: '72', Abfahrt: '2:00'}
    var Rel01097={ Relation: 'A101', Ort: 'Dresden-01097', Tor: '72', Abfahrt: '2:00'}
    var Rel01099={ Relation: 'A101', Ort: 'DD-Neustadt', Tor: '72', Abfahrt: '2:00'}
    var Rel01108={ Relation: 'A101', Ort: 'DD-Weixdorf', Tor: '72', Abfahrt: '2:00'}...


    Nun möchte ich über eine Input Box eine 5stlg. Postleitzahl eintragen lassen, dann vor diesen Eintrag ein "Rel" setzen - um den identischen Aufbau zu haben wie meine zu durchsuchenden Objekte - und mir in einem div z.B. den Ort ausgeben zu lassen.


    Die Inputbox ist aufgebaut:

    <p>PLZ:<input type 'text' id='suchRelation' onchange='plzSuchen()' onfocus='this.select()'></input></p>


    Der Teil der Javascript Function dazu sieht so aus:

    var item = 'Rel' + document.getElementById('suchRelation').value


    Ich bekomme es allerdings leider nicht hin das dies funktioniert, gebe ich den Wert fest in Javascript vor - also z.B. var item = Rel01097 ohne Anführungsstriche - bekomme ich ein Ergebnis, lasse ich es über die die Inputbox wie oben beschrieben suchen, bekomme ich die vorangestellte Fehlermeldung, dass die Postleitzahl nicht vorhanden ist.


    Ich bin leider bei Javascript recht neu, in VBS wüsste ich es wie es geht, allerdings nutzt mir dies hier nichts, da ich es Webbasierend benötige, und VBS dies ja nicht hergibt.


    Ich hoffe es ist einigermaßen verständlich, ansonsten bitte Info welche Informationen noch benötigt werden.


    Im Vorraus schon einmal Besten Dank an alle die sich damit beschäftigen...


    Gruß, Lämmi...

  • Im Prinzip könntest Du dein Problem mit dem Javascript-Befehl eval lösen, aber viele sagen "eval ist evil" und ich stimme dem zu und mag es nicht besonders.

    Stattdessen empfehle ich, die Struktur deiner Daten umzustellen (Du schreibst ja, dass Du sie selber über VBA erstellst), so dass Du einen einfachen Direktzugriff hast:

    Code
    var data = {
        Rel01067: { Relation: 'A101', Ort: 'Dresden-01067', Tor: '72', Abfahrt: '2:00'},
        Rel01069: { Relation: 'A101', Ort: 'Dresden-01069', Tor: '72', Abfahrt: '2:00'},
        Rel01097: { Relation: 'A101', Ort: 'Dresden-01097', Tor: '72', Abfahrt: '2:00'},
        // usw.
        Rel01108: { Relation: 'A101', Ort: 'DD-Weixdorf', Tor: '72', Abfahrt: '2:00'}
    }

    Zugriff ist dann sehr einfach:

    Code
    var key = document.getElementById('suchRelation').value;
    item = data[key];
  • Perfekt!


    Ok, ich glaube das Kapitel muss ich mir noch einmal genau zu Gemüte führen, denn eigentlich ist das ja recht logisch, aber darauf gekommen wäre ich sicher nicht. ;)


    Ich Danke Dir auf jeden Fall!


    Gruß Lämmi...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!