Session Variable per Ajax ändern

Marco-P

Erfahrenes Mitglied
Hallo liebe Gemeinde,

ich wollte per jquery ajax eine Session Variable ändern.
Aber irgendwie komme ich da nicht weiter.

Ich glaube es liegt am aufruf der function aber trotzdem bekomme ich das nicht hin.
Hoffe es kann mir jemand helfen.

Das hier ist mein HTML Quelltext wo ich die function starte
HTML:
    	<ul>
        	<li><a href="#" onClick="lang_change(de)">Deutsch</a></li>
            <li><a href="#" onClick="lang_change(en)">Englisch</a></li>
        </ul>

Dazu habe ich dann dieses Script geschrieben das per Ajax die datei alden soll.
Momentan für Testzwecke noch per GET später POST

Code:
<script type="text/javascript">
function lang_change(lang){
    $.ajax({
        type: "GET",
        url: "modul/ajax/lang_change.php", 
        data: { language:+lang }  
    });
    }


</script>

Und hier das Script das durch ajax geladen werden soll.

PHP:
$_SESSION[user_sprache] = $_GET[language];


Ich benutze Firefox mit FireBug und ich dachte man sieht wenn etwas per ajax gesendet wird im Netzwerk von Firebug.
Aber da pssiert nichts wenn ich auf die Links klicke.

Hoffe es kann mir jemand helfen.
Wahrscheinlich sehe ich den Wald vor lauter Baumen nicht.

MfG Marco
 
Zuletzt bearbeitet:
Versuche es mal so:

HTML:
<a href="#" onClick="lang_change('de');">Deutsch</a>
<a href="#" onClick="lang_change('en');">Englisch</a>

Einfach die Parameter in Anführungszeichen packen.
 
Zuletzt bearbeitet:
Generell, Strings müssen immer in Anführungszeichen stehen (einzige Ausnahme sind reguläre Ausdrücke in JS).

PHP:
$_SESSION['user_sprache'] = $_GET['language'];
 
Leider nein,

kann es vielleicht an der function direkt liegen?

HTML:
<script type="text/javascript">
function lang_change(lang){
    $.ajax({
        type: "GET",
        url: "modul/ajax/lang_change.php", 
        data: { language:+lang }  
    });
    }


</script>

vielleicht findert er die function ja einfach nicht.

Ja stimmt, aber das löst das Problem leider auch nicht.
 
Neue erkenntnisse,

also es wird die Funktion ausgeführt und auch das Script geladen mit dem Parameter
Aber das Script ändert nicht die Session variable.
 
Und woran lag es jetzt?

Auf der aktuell geladenen Seite (welche die Links enthält) passiert solange nichts bis sie auch neu geladen wird.
Erst dann wird ja der Inhalt der Session-Variablen neu ausgewertet!? !?
 
An dem Aufruf der Function und der Übergabe der daten in ajax

HTML:
<script type="text/javascript">
function lang_change(lang){
    $.ajax({
        type: "POST",
        url: "modul/ajax/lang_change.php", 
        data: "lang="+lang,   
    });

    }


</script>

Das ich es sehe wenn ich die Seite nue lade weiß ich aber es tut sich trotzdem nichts. seltsam sheinbar ahbe ich iregndwo etwas das dies überschreibt.

Es kann so einfach sein.

PHP:
session_start();

$_SESSION['user_sprache'] = $_POST['lang'];

So jetzt geht es, es hat geholfen das ich in dem script session_start() eingefügt habe.

Danke für die Hilfe.

MfG Marco
 
Zurück