Nie znam się na jQuery, więc napiszę jak potrafię
JavaScript
<?php
//przykładowe użycie
send('&co=panel_1&wartosc=1'); //wyśle do test.php wartości: $_POST['co']==='panel_1' oraz $_POST['wartosc']==='1'
function send(p) {
try {var http = new XMLHttpRequest();}
catch(e) {http = new ActiveXObject('Microsoft.XMLHttp');}
http.open('post','test.php',true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", p.length);
http.setRequestHeader("Connection", "close");
http.send(p);
}
?>
Przypisać te dwie zmienne do sesji po stronie PHP już chyba dasz radę?
Gdybyś miał problem z przypisaniem ich po stronie JS to pisz.
Co do ich pobierania i użycia przy wejściu jakiejś osoby, to już najlepiej zrobić getem pewnie:
JavaScript
<?php
function getSession() {
try {var http = new XMLHttpRequest();}
catch(e) {http = new ActiveXObject('Microsoft.XMLHttp');}
http.open('get','test.php',true);
http.onreadystatechange=function() {
if(this.readyState===4 && this.status===200) {
if(!http.responseXML) {
//koleś nie ma żadnych informacji w sesji na temat ustawień interfejsu
} else {
var d=http.responseXML.documentElement;
var panel_1 = d.childNodes[0].firstChild.nodeValue;//0 lub 1 (string, nie liczba!)
var panel_2 = d.childNodes[1].firstChild.nodeValue;// 0 lub 1 (string, nie liczba!)
//itd.
}
}
}
http.send(null);
}
?>
test.php
<?php
if($_SERVER['REQUEST_METHOD']==='GET') {
if($zalogowany) {
header('Content-type: text/xml; charset=utf-8'); echo '<?xml version="1.0" encoding="utf-8"?><daneSesji><panel_1>'.$_SESSION['panel_1'].'</panel_1><panel_2>'.$_SESSION['panel_2'].'</panel_2></daneSesji>'; } else {
//nie ma sensu nic wysyłać
}
}
?>
Ważne aby nie było żadnych spacji między tagami XML, bo Firefox uzna je za (słusznie) jedno z childNodes i klapa.
Można to oczywiście zrobić na różne sposoby w pętlach itp. ale to już sam kombinuj ;-)
ps. ZNACZNIE łatwiej i wydajniej będzie to zrobić w ciasteczkach, do których JavaScript ma bezpośredni dostęp.
Wiążą się z tym jednak dwa problemy:
1. Jeśli koleś jakoś zgubi ciastko, to zgubi też ustawienia. Można więc zapisywać je również do sesji i próbować odtworzyc gdyby je zgubił.
2. Ktoś może ukraść te tajne/poufne informacje o tych skrycie ukrywanych ustawieniach interfejsu