Bonjour,
J'en peux plus... Ca fait bientôt 6 heures que je cherche.
J'ai un site en php / mySQL, un formulaire permet de créer des requêtes que je stock sous forme de "filtres".
Ces filtres peuvent être actifs ou inactifs, leur statut est stocké dans:
$_SESSION['filtres'][$NumFiltre]["filtreActif"]
qui vaut 1 ou 0.
Je veux qu'on puisse activer et désactiver ces filtres par un bouton propre à chaque filtre.
chaque bouton agit comme suit:
onClick='this.form.actDesact.value = \"".$NumFiltres."\"; this.form.submit();
ensuite, au submit(), le filtre doit se (dés)activer grâce à:
$g = $_POST["actDesact"];
if($_SESSION['filtres'][$g]["filtreActif"] == 1) ){
$_SESSION['filtres'][$g]["filtreActif"] = 0;
}
if($_SESSION['filtres'][$g]["filtreActif"] == 0) ){
$_SESSION['filtres'][$g]["filtreActif"] = 1;
}
Cela marche parfaitement sous firefox.
Le soucis c'est qu'internet explorer se comporte d'une manière qui m'échappe complétement.
Pour mieux comprendre, j'ai mis:
print_r($_SESSION['filtres'][1]["filtreActif"]);
avant et après le if qui décide d'activer ou non.
Si je ne clique pas sur le bouton, comme de base le filtre est actif, j'obtiens 1 puis 1 ce qui est logique.
Si par contre je clic sur le bouton, j'obtiens 0 avant le traitement (c'est à dire que le filtre est désactivé avant même le if)
puis 1 après parce qu'il semble réactiver le filtre le croyant désactivé...
Le plus étrange est que si je clic sur le bouton pour désactiver le filtre (donc le filtre reste activé) mais que je rafraîchis manuellement la page, alors le filtre se désactive "normalement", les print_r donnent 1 puis 0 ....
C'est absurde mais peut être n'ai-je pas compris comment fonctionnent les variables de sessions sous IE...
Si vous avez une piste, merci beaucoup beaucoup de m'aider.
Partager