IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Ma variable de session ne s'enregistre pas


Sujet :

AJAX

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 165
    Points : 39
    Points
    39
    Par défaut [AJAX] Ma variable de session ne s'enregistre pas
    Bonjour à tous.



    J'ai besoin de yeux nouveaux dans mon code.
    Je ne vois plus rien... Je m'arrache les cheveux !
    Pouvez-vous prendre un peu de votre temps pour m'aider à y voir plus clair ?
    De mon côté, je désespère ! Je n'en peux plus ! Je tourne en rond !!!

    Voici ma page

    J'explique.
    Quand on clique sur une des 9 formes de diamants (haut du tableau), la fonction "entoure()" se déclenche. Et dans cette fonction, on enregistre la fameuse variable de session "['recherche']['forme']". On dirait qu'elle s'enregistre bien. Par contre, quand on fiat "F5", le contenu de cette variable de session a disparu !!! Pourquoi ?

    Voici la fonction javascript qui lance l'ajax :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function entoure(indforme) {
    	if (swForme[indforme]==0) {
    		swForme[indforme]=1;
    		document.getElementById("forme"+indforme).style.borderColor="#8e8f91";
    	} else {
    		swForme[indforme]=0;
    		document.getElementById("forme"+indforme).style.borderColor="#F5F5F5";
    	}
    	formes="";
    	for (var ind=1; ind<swForme.length; ind++) {
    		if (swForme[ind] == 1) {
    			formes += "1";
    		} else {
    			formes += "0";
    		}
    	}
    	if (pageLoaded == 1) {
    		variablesession('forme00', formes);
    		alert (formes);
    		resetRecherche();
    		newRecherche();
    	}
    }

    Voici la fonction "variablesession()", qui lancel'ajax :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function variablesession(oVar, oVal) {
    	if (oVar = 'formes00') {
    		alert(oVal);
    	}
    	var requete = creerRequete();
    	var pgm = "diamants/php/ajaxphp_variablesession.php";
    	requete.open("POST", pgm, false);
    	requete.onreadystatechange = function() {
    		if (requete.readyState == 4 && requete.status == 200) {
    		}
    	}
    	requete.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	requete.send("variable="+escape(oVar)+"&valeur="+escape(oVal));
    }

    Voici le xhr (diamants/js/requete.js"):
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    // JavaScript Document
    function creerRequete() {
    	var requete = null;
    	try {
    		requete = new XMLHttpRequest();	
    	} catch (essaimicrosoft) {
    		try {
    			requete = new ActiveXObject("Msxml2.XMLHTTP");	
    		} catch (autremicrosoft) {
    			try {
    				requete = new ActiveXObject("Microsoft.XMLHTTP");	
    			} catch (echec) {
    				requete = null;
    			}
    		}
    	}
     
    	if (requete == null) {
    		alert("Impossible de cr&eacute;er l'objet requete");
    	} else {
    		return requete;
    	}	
    }

    Voici le script "diamants/php/ajaxphp_variablesession.php", qui enregistre les variables de session par ajax :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    <?php
    	session_start();
    	if (isset($_REQUEST['variable']) AND isset($_REQUEST['valeur'])) {
    		$variable = $_REQUEST['variable'];
    		$valeur = $_REQUEST['valeur'];
    		switch ($variable) {
    			case "forme00":
    				$_SESSION['recherche']['forme'] = $valeur;
    				break;
    			case "poids00":
    				$_SESSION['recherche']['poids'][0] = $valeur;
    				break;
    			case "poids01":
    				$_SESSION['recherche']['poids'][1] = $valeur;
    				break;
    			case "couleur00":
    				$_SESSION['recherche']['couleur'][0] = $valeur;
    				break;
    			case "couleur01":
    				$_SESSION['recherche']['couleur'][1] = $valeur;
    				break;
    			case "prix00":
    				$_SESSION['recherche']['prix'][0] = $valeur;
    				break;
    			case "prix01":
    				$_SESSION['recherche']['prix'][1] = $valeur;
    				break;
    			case "taille00":
    				$_SESSION['recherche']['taille'][0] = $valeur;
    				break;
    			case "taille01":
    				$_SESSION['recherche']['taille'][1] = $valeur;
    				break;
    			case "purete00":
    				$_SESSION['recherche']['purete'][0] = $valeur;
    				break;
    			case "purete01":
    				$_SESSION['recherche']['purete'][1] = $valeur;
    				break;
    			case "serti00":
    				$_SESSION['recherche']['serti'] = $valeur;
    				break;
    			case "poli00":
    				$_SESSION['recherche']['poli'][0] = $valeur;
    				break;
    			case "poli01":
    				$_SESSION['recherche']['poli'][1] = $valeur;
    				break;
    			case "symetrie00":
    				$_SESSION['recherche']['symetrie'][0] = $valeur;
    				break;
    			case "symetrie01":
    				$_SESSION['recherche']['symetrie'][1] = $valeur;
    				break;
    			case "profondeur00":
    				$_SESSION['recherche']['profondeur'][0] = $valeur;
    				break;
    			case "profondeur01":
    				$_SESSION['recherche']['profondeur'][1] = $valeur;
    				break;
    			case "table00":
    				$_SESSION['recherche']['table'][0] = $valeur;
    				break;
    			case "table01":
    				$_SESSION['recherche']['table'][1] = $valeur;
    				break;
    			case "fluorescence00":
    				$_SESSION['recherche']['fluorescence'][0] = $valeur;
    				break;
    			case "fluorescence01":
    				$_SESSION['recherche']['fluorescence'][1] = $valeur;
    				break;
    			case "prixparcarat00":
    				$_SESSION['recherche']['prixparcarat'][0] = $valeur;
    				break;
    			case "prixparcarat01":
    				$_SESSION['recherche']['prixparcarat'][1] = $valeur;
    				break;
    			case "colette00":
    				$_SESSION['recherche']['colette'][0] = $valeur;
    				break;
    			case "colette01":
    				$_SESSION['recherche']['colette'][1] = $valeur;
    				break;
    			case "rapportll00":
    				$_SESSION['recherche']['rapportll'][0] = $valeur;
    				break;
    			case "rapportll01":
    				$_SESSION['recherche']['rapportll'][1] = $valeur;
    				break;
    			case "certificat00":
    				$_SESSION['recherche']['certificat'] = $valeur;
    				break;
    			case "tourdoigt":
    				$_SESSION['recherche']['tourdoigt'] = $valeur;
    				break;
    			case "gravure":
    				$_SESSION['recherche']['gravure'] = $valeur;
    				break;
    			case "confirmationbague":
    				$_SESSION['recherche']['confirmationbague'] = $valeur;
    				break;
    			case "referencebague":
    				$_SESSION['recherche']['referencebague'] = $valeur;
    				break;
    		}
    	}
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Est-ce que la session est bien démarré sur la page principale ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 165
    Points : 39
    Points
    39
    Par défaut
    Oui c'est bien fait dans la page principale aussi...
    Je confirme ici (le tout début de la page principale):
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    	session_start();
    	ob_start();

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 165
    Points : 39
    Points
    39
    Par défaut
    J'ai l'impression que c'est :
    "diamants/php/ajaxphp_variablesession.php"
    qui ne s'exécute pas.

    Mais pourquoi ?
    Comment vérifier qu'un ajax s'exécute bien ?

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 608
    Points
    21 608
    Par défaut
    Citation Envoyé par jytest Voir le message
    Comment vérifier qu'un ajax s'exécute bien ?
    Le principe même d'AJAX, c'est d'obtenir des données qui viennent du serveur, pour les rendre affichables dans la page qui appelle.

    Tu pourrais générer un texte du genre "Bonjour, il est <date et heure>" et le faire afficher dans ta page. S'il s'affiche, l'appel AJAX s'est bel et bien exécuté -_-°.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 165
    Points : 39
    Points
    39
    Par défaut
    D'accord, mais tant qu'à faire,
    comment lui faire afficher ma variable de session
    "$_SESSION['recherche']['forme']" ?

    Par contre, mon problème est toujours là !!!
    A l'aide !

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 608
    Points
    21 608
    Par défaut
    Alors, je suis pas un pro de PHP (et d'ailleurs ce n'est pas le forum PHP ici,) mais probablement un code très compliqué du genre

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    afficher $_SESSION['recherche']['forme'];

    Remplacer "afficher" par ce qui sert à afficher en PHP.
    Ne pas oublier le ; à la fin.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 165
    Points : 39
    Points
    39
    Par défaut
    c'est :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo $_SESSION['recherche']['forme'];
    exit;
    Mais rien ne s'affiche...
    Le programme ne s'arrête même pas !

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 608
    Points
    21 608
    Par défaut
    En même temps tu nous as pas dit comment tu essaies d'afficher côté AJAX.
    Bien sûr c'est du AJAX comme d'habitude, il y a rien d'original à faire. Mais sur la page dont tu as montré le lien, tu fais juste un alert() sur oVar et oVal. Je vois aucune utilisation de la réponse AJAX.
    (Ceci étant dit, ce alert devrait être une preuve suffisante que la requête AJAX a été exécutée et n'indique pas d'erreur.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 165
    Points : 39
    Points
    39
    Par défaut
    Mais pourquoi alors quand je fais F5,
    cette variable de session est perdue ?

    Une idée ?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 165
    Points : 39
    Points
    39
    Par défaut
    Miracle !
    Je n'ai rien changé !
    Et cela fonctionne !
    ... Et c'est bien là, le principal !!!
    Merci à tous !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajax et variable de session
    Par dknafoweb dans le forum Langage
    Réponses: 2
    Dernier message: 18/05/2014, 23h25
  2. Réponses: 4
    Dernier message: 21/09/2013, 18h06
  3. [AJAX] Passage variable de session
    Par Ctesias dans le forum AJAX
    Réponses: 1
    Dernier message: 06/02/2012, 12h24
  4. [AJAX] Ajax et variables de session php
    Par sorlok dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/05/2007, 16h22
  5. Réponses: 6
    Dernier message: 31/01/2006, 16h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo