OnChange Encoding

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

  • OnChange Encoding

    Hi,

    ich hab ein kleine Problem was sich mir gar nicht erklärt.

    Auf einer Anmeldeseite für eine unserer Magazine Kann man auswählen an welcher Hochschule man studiert. Das ganze ist eine Kombination von 3 Dropdowns in denen man zuert Land, dann Stadt und dann Hochschule wählt.

    Weil unsere Datenbasis der Hochschulen leider so ist, muss ich die Hochschulen die zu einer Stadt gehören anhand des Stadtnamens auswählen - leider keine Stadt-ID.

    Die XMLHTTPRequest Aktion ist an das onchange Event gebunden.

    http://www.studylounge.de/register/

    Nun, wählt man zuerst das Land - danach eine Stadt. Soweit ok. Wähle ich aber nun eine Stadt mit einem deutschen Umlaut (zB Bad-Münstereifel) wird der XMLHTTPRequests als UTF8 encoded übertragen.

    http://www.studylounge.de/_xml/xml.g...3%BCnstereifel

    PHP-Code:
    utf8_decode(urldecode($_GET['param'])) //liefert Bad-Münstereifel 
    Richtig wäre folgendes, was an anderer Stelle auf der Seite (im Userbereich kann man natürlich auch seine Uni wählen) auch funktioniert.
    http://www.studylounge.de/_xml/xml.g...M%FCnstereifel
    PHP-Code:
    urldecode($_GET['param']) //liefert Bad-Münstereifel 
    Ich habe die beiden Formulare, die Select-Tags und den JavaScript Code verglichen - kein Unterschied.

    Die Seite ist komplett in ISO-8859-1 und das Problem tritt nur im Firefox auf. Ich habe auch schon das Encoding des Formulars geändert, leider ohne Erfolg.

    Hat jemand von euch eine Idee woran das liegen kann?

  • #2
    Re: OnChange Encoding

    Und wie hast du den Parameter, wenn du ihn beim XMLHTTPRequest in den Query String aufnimmst, kodiert ...?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      in beiden fällen gleich - nämlich garnicht

      PHP-Code:
              function setUni(fieldtarget_val){
        var 
      target document.getElementsByName(target_val)[0];

        
      target.parentNode.style.backgroundColor '#fee';
        
      target.length 0;

        if(
      field.value != ''){
          var 
      url '/_xml/xml.get_uni.php?param=' field.value;
          var 
      data;
          if(
      data getData(url)){
            
      fillSelect(datatarget);
          }
        }
        
      target.parentNode.style.backgroundColor '';

      }  


      //html dazu
      <select size="1" name="tmp_uni_ort"  onchange="setUni(this, 'uni_id');">
        <
      option value="Bad Honnef/Bonn">
          
      Bad Honnef/Bonn
        
      </option>
        <
      option value="Bad Münstereifel">
          
      Bad Münstereifel
        
      </option>
        <
      option value="Baden-Baden">
          
      Baden-Baden
        
      </option>
      </
      select
      Da es per GET übertragen wird, sollte es doch automatisch encodet werden, oder?


      #edit:
      fillSelect füllt einfach nur das Select
      Zuletzt geändert von prego; 22.06.2006, 12:47.

      Kommentar


      • #4
        Original geschrieben von prego
        in beiden fällen gleich - nämlich garnicht
        Na denn würd' ick det mal machen ...
        Da es per GET übertragen wird, sollte es doch automatisch encodet werden, oder?
        Ja - aber offenbar nicht in der von dir gewünschten Kodierung, oder?

        Im IE kannst du bspw. einstellen "URLs immer als UTF-8 senden" - und das bezieht sich dann auf alle URLs, die noch nicht vernünftig kodiert waren.

        Wenn du also <a href="?äöü"> in dein Dokument schreibst, wird der Browser auch hier selber die Kodierung vornehmen - machst du aber natürlich nicht, in PHP jagst du bspw. vorher urlencode() darüber.
        Also ist es m.E. nur selbstverständlich, das in Javascript ebenfalls zu machen, wenn man dort einen URL bzw. Teile davon zusammenbastelt.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Danke,

          hatte es eben grad schon in der XML-Schnittstelle per urlencode() encodet - im JS is aber in dem Fall eleganter.

          PHP-Code:
          var url encodeURI('/_xml/xml.get_uni.php?param=' field.value); 
          Ich werde in Zukunft drauf achten die Sachen einfach immer passend zu encoden.

          Dennoch wundere ich mich sehr warum es im Userbereich klappt und bei der Registrierung nicht...


          big thnx.

          Kommentar

          Lädt...
          X