Andrea: Auswahlliste mit Trenner

Guten Tag

Ich möchte gern eine Auswahlliste mit verschiedenen Sprachen erstellen. Ganz oben sollen die üblichsten Sprachen angezeigt werden, darunter sollen alle Sprachen dann alphabetisch aufgelistet werden.
Um das Ganze etwas übersichtlicher zu machen, würde ich zwischen diesen beiden "logischen" Gruppen gern einen Trennstrich oder etwas ähnliches einfügen.

Also etwa so:

  
<select name="s_sprache" id="s_sprache" size="1">  
  
  <option value="DEUT" selected="selected">Deutsch</option>  
  <option value="ENGL">Englisch</option>  
  <option value="FRAN">Französisch</option>  
  
  <option value="TRENNER">---</option>  
  
  <option value="AFRI">Afrikaans</option>  
  <option value="ALBA">Albanisch</option>  
  <option value="ARAB">Arabisch</option>  
  <option value="ARME">Armenisch</option>  
  ...  
  
</select>  

Wenn ich das so wie beschrieben mache, kann der User aber natürlich auch den Trenner selbst auswählen und das Formular dann abschicken. Dann müsste ich diesen Fall überprüfen und danach eine Fehlermeldung ausgeben.

Kann ich diese zusätzliche Fehlerquelle bzw. nötige Überprüfung irgendwie umgehen?

Bin für jeden Hinweis dankbar. :-)

Liebe Grüsse
Andrea

  1. echo $begrüßung;

    Wenn ich das so wie beschrieben mache, kann der User aber natürlich auch den Trenner selbst auswählen und das Formular dann abschicken. Dann müsste ich diesen Fall überprüfen und danach eine Fehlermeldung ausgeben.
    Kann ich diese zusätzliche Fehlerquelle bzw. nötige Überprüfung irgendwie umgehen?

    Eine Auswahlliste ist keine Garantie, dass nicht irgendein Client was völlig anderes als einen von den angegebenen Werten sendet. Du brauchst nicht nur eine Prüfung auf den Trenner sondern eher eine Prüfung auf die gültigen Werte. Dass der Trenner nicht dabei ist, ist dann "nur ein Nebeneffekt".

    Ansonsten gibt es noch <http://de.selfhtml.org/html/formulare/auswahl.htm#menuestruktur@title=verschachtelte Auswahllisten>.

    echo "$verabschiedung $name";

    1. Hallo dedlfix

      Vielen Dank für Deine Antwort.

      Eine Auswahlliste ist keine Garantie, dass nicht irgendein Client was völlig anderes als einen von den angegebenen Werten sendet. Du brauchst nicht nur eine Prüfung auf den Trenner sondern eher eine Prüfung auf die gültigen Werte. Dass der Trenner nicht dabei ist, ist dann "nur ein Nebeneffekt".

      Ja, das ist mir bewusst und die Auswahl bzw. Eingabe des Benutzers wird auch bereits überprüft.

      Ich dachte einfach, dass es evtl. irgend eine mir noch nicht bekannte Option gibt, welche die Auswahl des Trennstrichs von vornherein verunmöglicht, so dass der Benutzer nach dem Abschicken des Formulars möglichst selten eine Fehlermeldung erhält.

      Es geht mir nicht darum, dass ich zur Überprüfung ein paar Zeilen Code mehr schreiben muss, sondern nur um optimale Benutzerfreundlichkeit.

      Liebe Grüsse
      Andrea

  2. @@Andrea:

    Um das Ganze etwas übersichtlicher zu machen, würde ich zwischen diesen beiden "logischen" Gruppen gern einen Trennstrich oder etwas ähnliches einfügen.

    Du möchtest Optionen gruppieren: 'optgroup'. [HTML401 §17.6, http://de.selfhtml.org/html/formulare/auswahl.htm#menuestruktur@title=SELFHTML]

    <option value="DEUT" selected="selected">Deutsch</option>
      <option value="ENGL">Englisch</option>
      <option value="FRAN">Französisch</option>

    Warum benutzt du als value nicht die gängigen Sprachkürzel 'de', 'en', 'fr', …? [IANA]

    Und welchen Zweck hat die Auswahlliste? Soll ein Nutzer, der kein Deutsch spricht, darin seine Sprache finden? Dann müssen die Optionen in der jeweiligen Zielsprache (und deren Schrift) beschriftet sein! [I18N-QUICKTIPS §Navigation]

    <select name="s_sprache" id="s_sprache" size="1">  
     <optgroup label="häufigste Sprachen">  
      <option value="de" selected="selected">Deutsch</option>  
      <option value="en">English</option>  
      <option value="fr">Français</option>  
     </optgroup>  
     <optgroup label="andere Sprachen">  
      <option value="af">Afrikaans</option>  
      <option value="ar">العربية</option>  
      <option value="hy">Հայերեն</option>  
      <option value="sq">Shqip</option>  
     </optgroup>  
    </select>
    

    Sortiert werden könnte anhand der Sprachkürzel, wie es auch in der Wikipedia gemacht wird.

    Vielleicht sollte die zweite Gruppe auch "alle Sprachen" heißen und die häufigsten Sprachen noch einmal enthalten.

    Generell ist eine solche Auswahlliste aber höchst problematisch: Ein Nutzer, der kein deutsch spricht, hat keine Chance zu sehen, dass sich hinter der Auswahlliste die Sprachauswahl versteckt. [QA-NAVIGATION-SELECT, icke] Zeige besser alle Sprachen sichtbar an, wie es auch in der Wikipedia gemacht wird.

    Live long and prosper,
    Gunnar

    --
    Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
    1. Hallo Gunnar

      Danke für Deine ausführliche Antwort.

      Du möchtest Optionen gruppieren: 'optgroup'.

      Hm... Ich bin noch nicht sicher, welche Variante ich benutzerfreundlicher und intuitiver finde - die Variante mit dem Trennstrich oder Dein Vorschlag mit den gruppierten Optionen. Muss mal in Ruhe vergleichen...

      Warum benutzt du als value nicht die gängigen Sprachkürzel 'de', 'en', 'fr', …? [IANA]

      Gute Frage. :-) Weil ich diesen genialen Link bisher nicht gekannt habe. Dankeschön.

      Und welchen Zweck hat die Auswahlliste? Soll ein Nutzer, der kein Deutsch spricht, darin seine Sprache finden? Dann müssen die Optionen in der jeweiligen Zielsprache (und deren Schrift) beschriftet sein!

      Du hast natürlich völlig Recht. Aber mit Hilfe dieser Auswahlliste sollen deutschsprachige Benutzer angeben können, welche Sprachen sie beherrschen.
      Zuvor haben die Benutzer aus einer Liste von Sprachen (Deutsch, English, Français, Italiano, etc.) gewählt, in welcher Sprache die Webseite angezeigt werden soll.

      Nochmals vielen Dank und liebe Grüsse
      Andrea

      1. Gute Frage. :-) Weil ich diesen genialen Link bisher nicht gekannt habe. Dankeschön.

        ggf wird dich dann iso 639-1 auch interessieren ;)

        1. @@suit:

          Gute Frage. :-) Weil ich diesen genialen Link bisher nicht gekannt habe. Dankeschön.
          ggf wird dich dann iso 639-1 auch interessieren ;)

          Nicht wirklich. Es sei denn aus Nostalgie.

          “You used to find subtags by consulting the lists of codes in various ISO standards, but now you can find all subtags in the IANA Language Subtag Registry. […]

          “Some of the major changes as we move from RFC 3066 to RFC 4646 are:
             1. there is just one place to look for valid subtags, the new IANA registry […]” [LANGUAGE-TAGS]

          Live long and prosper,
          Gunnar

          --
          Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
            1. there is just one place to look for valid subtags, the new IANA registry […]”

            was mich jetzt aber interessiert: wie siehts mit eigenkonstruktionen aus

            in der liste existiert de-AT zb garnicht, lediglich de-AT-1901 und Tag: de-AT-1996 - ebenso suche ich de-DE vergeblich - ich nach bisher an, dass man die dinger selbst bauen kann und sich diese grundsätzlich aus iso 639 und iso 3166 zusammensetzen

            bisher habe ich aber noch nie mehr als die sprache selbst benötigt, regionale variationen hatte ich bisher noch nie ;)

            hast du hierzu genauere infos vorliegen?

            1. @@suit:

              in der liste existiert de-AT zb garnicht

              Die Liste kann auch schlecht sämtliche Kombinationen aler Subtags auflisten.

              Du kannst nach Bedarf gültige Language-Subtags mit gültigen Region-Subtags etc. kombinieren.

              hast du hierzu genauere infos vorliegen?

              Noch genauer als [LANGUAGE-TAGS] und [RFC4646]?

              Live long and prosper,
              Gunnar

              --
              Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
      2. @@Andrea:

        Hm... Ich bin noch nicht sicher, welche Variante ich benutzerfreundlicher und intuitiver finde - die Variante mit dem Trennstrich oder Dein Vorschlag mit den gruppierten Optionen. Muss mal in Ruhe vergleichen...

        Du kannst auch optgroup formatieren: optgroup {border-bottom: 1px solid black} und kein 'label'-Attribut setzen. IEs stellen den Rahmen nicht dar, lassen aber Leerraum.

        Oder du nimmst "————————" als Wert des 'label'-Attributs. Was man durchaus als Missbrauch bezeichnen darf.

        Du hast natürlich völlig Recht. Aber mit Hilfe dieser Auswahlliste sollen deutschsprachige Benutzer angeben können, welche Sprachen sie beherrschen.

        Nann ist die Beschriftung komplett in Deutsch natürlich richtig.

        Live long and prosper,
        Gunnar

        --
        Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.