Unicode bzw. HTML in Select options

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Unicode bzw. HTML in Select options

    Hi zusammen,

    da ich noch immer kein JS-Profi bin, aber im Augenblick eine bisher einsprachige Webanwendung mit allem möglichen an Javascripten umarbeite, stellt sich für mich die Frage, wie ich dynamisch Option-Elemente zu einer Select-Liste hinzufügen kann, wobei die einzelnen Option-Elemente Unicode-Zeichen (z.b. Russisch, chinesisch) enthalten können?

    Ich habe bisher zwar schon in der Form
    PHP-Code:
    allreportsitem = new Option ("[ALL]","AllReports",false,false); 
    neue Elemente hinzufügen können, doch dummerweise wird das [ALL] in dem obigen Beispiel vorher von einem Template-Parser in das landesspezifischen Unicode-Wort umgewandelt, z.B. steht dann dort:

    正在产生报告,请&amp ;#31561;待

    anstatt

    正在产生报告,请等待

    - und genau diese erste Zeichenfolge (anstatt der zweiten, interpretierten Ausgabe) wird anschließend in der Select-Box dargestellt.

    Wenn die Seite beim ersten Mal dargestellt wird, sind die einzelnen Option-Werte noch fest vorgegeben und werden dann auch richtig dargestellt, aber erst nach dem Klick in eine weitere Select-Box werden die Elemente gegen die dynamischen Elemente getauscht und die Darstellung ist dann falsch.

    Ich denke, das es evtl. daran liegen könnte, das beim Erzeugen eines Option-Elements in Javascript die innerText- und nicht die innerHTML-Funktion aufgerufen wird, aber das ist nur eine Mutmaßung.

    Um die Sache noch abschließend abzurunden, hier der Grund meines Vorgehens:
    die erste Select-Box enthält die Namen und IDs einzelner Geräte, die jeweils spezifische Informationen enthalten können (wie z.B. Effizienzen, Laufzeiten etc.) - die zweite Liste zeigt genau diese verfügbaren Informationen an.
    Klickt man nun auf eine Maschine, so sollen jeweils nur die Elemente angezeigt werden, die für das eine Gerät relevant sind, damit bei einem anschließenden Datenbankauszug nur die richtigen Werte abgefragt werden.
    Ich hatte gehofft, einfach dynamisch alle nicht-verfügbaren Optionen auszublenden, aber leider unterstützt das HTML-option-Element ja weder "display: none" noch "visibility: hidden".
    Die Seite hat im Übrigen bereits ein entsprechendes Character-Set hinterlegt, in meinem Fall UTF-8.

    Würde mich freuen, wenn jemand einen Ausweg aus dem Dilemma kennt oder mir den Fehler in meinem Vorgehen nennen könnte.

    Danke im Voraus!

    Gruß,

    Sascha

  • #2
    was für ein charset hast du denn angegeben?

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hi Peter,

      ich hatte bei der Formulierung evtl. nicht aufgepaßt (ging im Text unter...), wie mir gerade aufgefallen ist ... das charset ist "UTF-8".

      Inhaltlich korrigiert: teilweise wurde auch fälschlicherweise "charset=Arial Unicode MS" verwendet.
      Zuletzt geändert von Swafnil; 14.03.2006, 16:01.

      Kommentar


      • #4
        Original geschrieben von Swafnil
        das charset ist "UTF-8" bzw. hatte ich auch "Arial Unicode MS" ausprobiert.
        "Arial Unicode MS" ist eine Schriftart, und keine Zeichenkodierung ...

        OffTopic:
        Vielleicht doch besser jemanden dran setzen, der wenigstens ein bisschen was vom Thema versteht ...?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Klar ist Arial Unicode MS eine Schriftart, aber mein Vorgänger hatte bisher genau die Angabe als Character Set hinterlegt und auch damit wurden die Unicode-Darstellungen korrekt wiedergegeben.

          @Wahsaga: Ach, und Kritik ist wirklich in Ordnung, solang man selbst eine Antwort mit Inhalt von sich gibt ...

          Würde mich über konstruktive Vorschläge freuen!

          Kommentar


          • #6
            Nun ja, korrektes Vorgehen wäre m.E., dem Template-Parser das unsinnige Umwandeln in nummerische Zeichenreferenzen abzugewöhnen - wozu soll das gut sein, wenn man doch eh Unicode verwendet?

            Falls das nicht möglich sein sollte, dann würde ich veruschen das von dir schon angesprochene innerHTML zu nutzen - die neue Option erst mit einem leeren Textinhalt (oder Dummy) erzeugen, und dann anschließend ihr innerHTML mit dem die nummerischen Referenzen enthaltenden Zielstring ersetzen ...
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Danke für den Vorschlag - leider kann ich das unsinnige Umwandeln nicht unterbinden, da die Einträge als Zeichenfolgen aus der Datenbank kommen und über ein Webfrontend eingetragen werden können - so wird aus dem ursprünglichen Begriff automatisch eine nummerische Zeichenreferenzen erzeugt, die innerhalb der Tabelle abgelegt wird und im gleichen Format auch wieder ausgelesen wird.

              Dein zweiter Vorschlag wirkt auf jeden Fall vielversprechend, den werde ich erst einmal ausprobieren. Danke!

              Kommentar

              Lädt...
              X