Philipp: 2 Javascipt Anfaengerfragen

Hallo

Habe 2 Fragen:

Erste Frage: Ich habe 2 Radiobuttons, einmal ist id="aes" und einmal id="des". In einem XML Document steht welcher Algorithmus verwendet wird und das lese ich wiefolgt aus:

algorithm = response.getElementsByTagName('country_code')[0].firstChild.data;

Nun moechte ich in abhaengigkeit von algorithm den entsprechenden Radiobutton setzten. Wenn ich es so wie unten mache bekomme ich die Fehlermeldung dass das Objekt null ist obwohl algorithm=aes.

document.getElementById(algorithm).checked = true;

Wenn ich es hardcodiera bekomme ich das gewuenschte Resultat:

document.getElementById('aes').checked = true;

Wie mache ich denn das korrekt?

Zweite Frage: Oft sieht man Auswahllisten, die es erlauben ein Land auszuwaehlen. Gibt es hierzu ein fixfertiges Listenelement? Oder muss ich von Hand all diese Laender in ein Listenelement eintragen?

Danke fuer Eure Hilfe

Gruss
Philipp

  1. Hi,

    Wenn ich es so wie unten mache bekomme ich die Fehlermeldung dass das Objekt null ist obwohl algorithm=aes.

    nein, offenbar nicht. Überprüfe dies _genau_.

    Zweite Frage: Oft sieht man Auswahllisten, die es erlauben ein Land auszuwaehlen. Gibt es hierzu ein fixfertiges Listenelement?

    Nein.

    Oder muss ich von Hand all diese Laender in ein Listenelement eintragen?

    Ob das per Hand passieren muss, ist noch mal ein anderes Problem.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi

      nein, offenbar nicht. Überprüfe dies _genau_.

      Sorry, du hast recht. Es funktioniert genau so!

      Koennte jedoch hierzu noch einen kleinen Tip brauchen. Wie gesagt ich lese mir die Daten aus dem XML Document. Nun kann jedoch folgender Fall auftreten:

      <admin_email></admin_email>

      D.h. probier ich nun folgendes:

      admin_email = response.getElementsByTagName('admin_email')[0].firstChild.data;

      Bekomme ich die Fehlermeldung Object required. Muss ich nun hier extra eine Hilfsfunktion schreiben welche mir diesen Fall abfaengt?

      In dieser Funktion frag ich dann ab ob:
      response.getElementsByTagName('admin_email')[0].firstChild == false

      ist das der Fall geb ich "" zurueck bzw. existieren Daten so schreib gib mir die Daten aus.

      Geht das ganze vielleicht auch ein bisschen einfacher und saubrer?

      1. Tag Philipp.

        Koennte jedoch hierzu noch einen kleinen Tip brauchen. Wie gesagt ich lese mir die Daten aus dem XML Document. Nun kann jedoch folgender Fall auftreten:
        <admin_email></admin_email>
        D.h. probier ich nun folgendes:
        admin_email = response.getElementsByTagName('admin_email')[0].firstChild.data;
        Bekomme ich die Fehlermeldung Object required. Muss ich nun hier extra eine Hilfsfunktion schreiben welche mir diesen Fall abfaengt?

        Die Abfrage nach Elementen mit dem Tagnamen 'admin_email' liefert dir eine Kollektion aller entsprechenden Elemente. Ist die Eigenschaft length dieser Kollektion größer 0, dann kommt das Element mindestens einmal vor, anderenfalls nicht.

        Ein anderer Ansatz wäre, direkt auf ein Element der Kollektion zuzugreifen und dessen Typ zu prüfen. Ist dieser 'undefined', gibt es dieses Element ebenfalls nicht.

        Siechfred

        1. Die Abfrage nach Elementen mit dem Tagnamen 'admin_email' liefert dir eine Kollektion aller entsprechenden Elemente. Ist die Eigenschaft length dieser Kollektion größer 0, dann kommt das Element mindestens einmal vor, anderenfalls nicht.

          Ein anderer Ansatz wäre, direkt auf ein Element der Kollektion zuzugreifen und dessen Typ zu prüfen. Ist dieser 'undefined', gibt es dieses Element ebenfalls nicht.

          Siechfred

          Hi Siechfred

          Danke fuer Deine Antwort, aber es geht mir nicht darum ob der Tagname existiert. Das Problem ist dass das Tag keine Daten, also in unserem Fall keine Emailadresse enthaelt:

          <admin_email></admin_email>

          Versuch ich nun mit firstChild.date auf den Datenstring zuzugreifen bekomme ich eine Fehlermeldung da hier ja keine Email Adresse vorhanden ist. Genau diesen Fall moechte ich abfangen!

          Gruss
          Philipp

          1. Tag Philipp.

            Danke fuer Deine Antwort, aber es geht mir nicht darum ob der Tagname existiert. Das Problem ist dass das Tag keine Daten, also in unserem Fall keine Emailadresse enthaelt:

            Wenn das Element existiert, aber keinerlei Inhalt hat, dann hat es auch keine Kindknoten.

            Siechfred

      2. Hi,

        <admin_email></admin_email>
        admin_email = response.getElementsByTagName('admin_email')[0].firstChild.data;
        Bekomme ich die Fehlermeldung Object required. Muss ich nun hier extra eine Hilfsfunktion schreiben welche mir diesen Fall abfaengt?

        nein, einfach nur prüfen, ob das Objekt existiert. Natürlich kannst Du das in eine Hilfsfunktion auslagern, wenn Du willst; ob das sinnvoll ist, kannst nur Du entscheiden.

        response.getElementsByTagName('admin_email')[0].firstChild == false

        Wieso "false"?

        Geht das ganze vielleicht auch ein bisschen einfacher und saubrer?

        Noch sauberer als bei _jedem_ ermittelten Objekt (bzw. Methode) die Existenz abzuprüfen geht nicht, nein :-)

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. response.getElementsByTagName('admin_email')[0].firstChild == false

          Wieso "false"?

          Sorry frage natuerlich auf == null ab

          Gruss Philipp

          1. Hi,

            Sorry frage natuerlich auf == null ab

            auch das ist nicht unbedingt nötig. Prüfe, ob das Objekt Werte enthalten kann, die im Boole'schen Sinne false sind, von Dir aber beachtet werden müssen.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
    2. Zweite Frage: Oft sieht man Auswahllisten, die es erlauben ein Land auszuwaehlen. Gibt es hierzu ein fixfertiges Listenelement?

      Nein.

      Oder muss ich von Hand all diese Laender in ein Listenelement eintragen?

      Ob das per Hand passieren muss, ist noch mal ein anderes Problem.

      Achja, koenntest du mir hierzu vielleicht kurz verraten wie man das am geschicktesten macht?

      Danke!

      1. Hi,

        Oder muss ich von Hand all diese Laender in ein Listenelement eintragen?
        Ob das per Hand passieren muss, ist noch mal ein anderes Problem.
        Achja, koenntest du mir hierzu vielleicht kurz verraten wie man das am geschicktesten macht?

        Copy & Paste (Urheberrechte beachten), durch irgend was generieren lassen, einkaufen ...

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes