Umlaute und PHP

  • Hi,

    also mein Prblem ist folgendes:
    Ich habe ein Formular mit einem Select-Feld, darin ca. 100 Options (Länder).

    Man hat, nachdem man das Formula ausgefüllt hat, nochmal die Möglichkeit zu der Seite zurück zu kommen und das Formular zu bearbeiten. Dabei möchte ich die vorherige Eingabe schon in dem entsprechenden Feld stehen haben bzw. ausgewählt haben bei selects.

    Das mache ich so:

    PHP
    <option value="&Auml;gypten"<?php if($_SESSION["ec"][$id]["ec_nation"] == "&Auml;gypten"){echo " selected";} ?>>&Auml;gypten</option>

    Wenn man ein Land mit Umlauten, hier Ägypten, wählt, wird dieses zwar in der Session gespeichert aber beim erneuten Aufruf des Formulars und beim Lesen aus der Session ergibt die If-Bedingung aber false.

    Code
    ==Ägypten


    funktioniert auch nicht.

    Warum?

  • Packe alle länder in ein array, dann kannst du einfach per schleife die option-Zeilen bauen und nimmst dann dabei den key als value und eben nicht den wert. Somit hantierst du dann nur mit einem einfachen index. Alternativ könntest du das array auch so aufbauen:

    PHP
    <?php
       $nations = array("de" => "Germany",
                                "tr" =>  "Turkey",
                                usw.);
    ?>


    So würdest du mit den kürzeln arbeiten. Egal wie, bei beiden fällen bist du die umlaute los.

  • Jo daran hab ich natürlich auch schon gedacht. Aber bei über 100 Länder ist das nicht das angenehmste Arbeit. :/ Über Kürzel wollte ich deshalb nicht gehen. Aber scheint wohl nicht anders zu gehen. :/

  • versuchs mit:

    PHP
    <option value="&Auml;gypten"<?php if($_SESSION["ec"][$id]["ec_nation"] == "Ägypten"){echo " selected";} ?>>&Auml;gypten</option>

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • ist das nicht genau der code der nicht funktioniert hat?^^

    Orthografie und Grammatik in diesem Beitrag sind frei erfunden und eine eventuell gefundene Übereinstimmung mit einer lebenden oder toten Sprache sollte von allen Beteiligten unverzüglich ignoriert werden.

    K-Progs (In bearbeitung)
    Der inoffizielle Forum-hilfe IRC-Channel
    (Server: irc.freenode.net ; Channel: #forum-hilfe) (Client für FF)
    Ich hab auch 'n Jabber-Account beim CCC ;)

  • nein ich hab == "&Auml;gypten" mit == "Ägypten" getauscht ;)

    PHP kennt doch kein &Auml;
    und HTML schickt es glaub ich als Ä weiter

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • Wie wärs mit

    PHP
    <option value="&Auml;gypten"<?php
      if($_SESSION["ec"][$id]["ec_nation"]=="Ägypten" || html_entity_decode($_SESSION["ec"][$id]["ec_nation"])=="Ägypten")echo ' selected="selected"';
    ?>>&Auml;gypten</option>

    PHP kennt &Auml; es ist ebenfalls ein normaler String wie der Rest, nur es ist nicht ==Ä

  • auch ne idee^^
    man müsste nur wissen was genau in der session abgespeichert wird
    halt als text/plain ausgeben und alle probleme wären glaub ich gelöst

    Something big is coming. And there will be pirates and ninjas and unicorns...

  • man könnte auch anstatt mit dem landesnamen im value mit einer id arbeiten...

    Orthografie und Grammatik in diesem Beitrag sind frei erfunden und eine eventuell gefundene Übereinstimmung mit einer lebenden oder toten Sprache sollte von allen Beteiligten unverzüglich ignoriert werden.

    K-Progs (In bearbeitung)
    Der inoffizielle Forum-hilfe IRC-Channel
    (Server: irc.freenode.net ; Channel: #forum-hilfe) (Client für FF)
    Ich hab auch 'n Jabber-Account beim CCC ;)

  • Wenn du kein array benutzen willst, dann benutze eine datenbank.

    Greg10
    Gratulation, das wurde schon in der ersten antwort erwähnt.

  • Nein da waren es länder-kürzel aber keine id's, die viel weniger arbeit machen würden ;)

    Und eine datenbank machts nur unnötig komplizierter

    Orthografie und Grammatik in diesem Beitrag sind frei erfunden und eine eventuell gefundene Übereinstimmung mit einer lebenden oder toten Sprache sollte von allen Beteiligten unverzüglich ignoriert werden.

    K-Progs (In bearbeitung)
    Der inoffizielle Forum-hilfe IRC-Channel
    (Server: irc.freenode.net ; Channel: #forum-hilfe) (Client für FF)
    Ich hab auch 'n Jabber-Account beim CCC ;)

  • Wieso sollen id's weniger arbeit machen. An irgendeiner stelle muss es ein zuordung id->Nation geben. Wo ist jetzt der unterschied zu den bisher genannten vorschlägen?

  • Code
    html_entity_decode($_SESSION["ec"][$id]["ec_nation"])


    genau nach sowas habe ich gesucht... funktioniert nur leider auch nicht... egal, ich hab jetzt ein Array... und was für eins! :)


    Geil wa? :)
    MfG Markus und Danke!

  • Zitat von FaFoo

    Geil wa? :)


    Leider nicht, weil zeilen mit über 200 zeichen nicht lesbar sind. Warum nicht ordentlich und lesbar schreiben:


    Und wenn du bei 0 anfängst, geht es noch leichter:

  • es würde weniger arbeit machen einfach den array-begin vor die <option>-tags zu schreiben, das array-ende dahinter und dann per regual-expression die <option> tags durch array-elemente zu ersetzen ;)

    Orthografie und Grammatik in diesem Beitrag sind frei erfunden und eine eventuell gefundene Übereinstimmung mit einer lebenden oder toten Sprache sollte von allen Beteiligten unverzüglich ignoriert werden.

    K-Progs (In bearbeitung)
    Der inoffizielle Forum-hilfe IRC-Channel
    (Server: irc.freenode.net ; Channel: #forum-hilfe) (Client für FF)
    Ich hab auch 'n Jabber-Account beim CCC ;)