Sahra: Link jQuery Cookie Problem

Hallo,

ich habe ein Sprachmenu. Wird eine ausgewählt soll diese ich auf das PHP Menu auswirken.

Drückt man auf einen Link wird folgendes jQuery ausgeführt

jQuery('#languageselection li span').click(function(){
 jQuery.cookie('language', jQuery(this).attr('language'));
});

Im PHP habe ich nur ein
echo $_COOKIE['language'];
.

Das Problem ist nur wenn ich 2mal hintereinander auf die englische Fahne drücke

<span class="selectflag en" language="en">
<a href="/en/startpage.html">English</a>
</span>

Ändert sich das Cookie. Drückt man abwechselnd wird im PHP immer einen Schritt zu spät ausgegeben. Als wäre php schneller als JS onClick. Gibt man dem JS noch zusätzlich ein alert damit der Ladevorgang unterbrochen wird so hilft das leider auch nicht.

Was kann ich tun?

Liebe Grüße
S

  1. Hi,

    Drückt man abwechselnd wird im PHP immer einen Schritt zu spät ausgegeben. Als wäre php schneller als JS onClick.

    *Ist* es, da PHP serverseitig ausgeführt wird, *bevor* JavaScript überhaupt beim Client ankommt.

    Was kann ich tun?

    Die absoluten Grundlagen der Client-Server-Komunikation im HTTP-Umfeld lernen.

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Hallo,

      demnach wäre PHP ja schneller als sein Schatten. JS wird ja vor dem Request ausgeführt.

      Daher ja auch das alert. Also nochmal was kann ich tun. Demnach ist ein Workaround ja auch nicht sauber. Es werden aber bestimmt Cookies auch hin und wieder im JS befüllt und in PHP weiterverarbeitet.

      Danke
      Sahra

      1. Hi,

        demnach wäre PHP ja schneller als sein Schatten. JS wird ja vor dem Request ausgeführt.

        Ja. Und wo machst du dann eigentlich den Request, nach dem setzen des Cookies?

        Wenn du dich auf die Default-Aktion des Links verlässt, dann sollte ja anschließend /en/startpage.html angefordert werden. Was genau ist daran jetzt nicht das, was du willst?

        MfG ChrisB

        --
        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
        1. Hallo,

          ich dachte es liegt am JS. Deshalb hatte ich den Link jetzt auch als HTML Attribut hinzugefügt. Und die Weiterleitung im JS gesetzt.

          Allerdings ist das Problem geblieben. Das Szenario nochmal

          Ich drücke die de Fahne
          Redirect geht auf de Seitenversion
          Ausgabe Cookie sagt aber en

          Ich drücke auf die En Fahne
          Redirect geht auf en Version
          Ausgabe Cookie de

          Schaut man sich die Cookies unter Firefox an gibt es dann auch noch 2 "language" cookies.

          Das verstehe ich jetzt garnicht mehr.

          Danke Sahra

          1. Hi,

            Schaut man sich die Cookies unter Firefox an gibt es dann auch noch 2 "language" cookies.

            Dann informiere dich, wie man den Pfad angibt, unterhalb dessen der Cookie gültig sein soll.

            MfG ChrisB

            --
            RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
            1. Hi,

              das wars. Mega Danke.

              jQuery.cookie('language', jQuery(this).attr('language'), { expires: 7, path: '/' });

              Keep on rock
              Sahra

  2. @@Sahra:

    nuqneH

    Das Problem ist nur wenn ich 2mal hintereinander auf die englische Fahne drücke

    Fahnen zur Sprachwahl? Nein!!

    Ich glaub auch nicht, dass dir bewusst ist, wie die englische Fahne aussieht. Tip: Blau kommt nicht darin vor.

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)