Link jQuery Cookie Problem
Sahra
- javascript
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
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
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
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
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
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
Hi,
das wars. Mega Danke.
jQuery.cookie('language', jQuery(this).attr('language'), { expires: 7, path: '/' });
Keep on rock
Sahra
@@Sahra:
nuqneH
Das Problem ist nur wenn ich 2mal hintereinander auf die englische Fahne drücke
Ich glaub auch nicht, dass dir bewusst ist, wie die englische Fahne aussieht. Tip: Blau kommt nicht darin vor.
Qapla'