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

JavaScript Discussion :

modifier une variable de session via javascript


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    491
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 491
    Par d�faut modifier une variable de session via javascript
    Bonjour,

    Je voudrais modifier une variable de session par du code javascript.

    dans l'en-t�te de ma page, je met le script suivant :
    Code : 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
    <script type='text/JavaScript'>
     
    	function getXhr() {
    		var xhr = null; 
    		if(window.XMLHttpRequest) // Firefox et autres
    			xhr = new XMLHttpRequest(); 
    		else if(window.ActiveXObject){ // Internet Explorer 
    			try {
    				xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			} catch (e) {
    				xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			}
    		}
    		else { // XMLHttpRequest non supporté par le navigateur 
    			alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    			xhr = false; 
    		} 
    	return xhr;
    	}
     
    	function go(requete) {
    		var xhr = getXhr();
    		// On défini ce qu'on va faire quand on aura la réponse
    		xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						alert(xhr.responseText);
    					}
    					}
    		xhr.open("GET",requete,true);
    		xhr.send(null);
    	}
    </script>
    dans ma page, j'ai une liste d�roulante, et je veux lancer la modification de la variable lors de l'evenement onchange de la liste :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <td class="texte1">La vitesse du vent est en
    				<form method="post">
    				<select class="texte1" onchange="javascript:go('majSession.php?value='+this.value,'GET');">
    					<option <?php if($_SESSION['wind_unit'] == "noeuds") { echo 'selected'; } ?>>noeuds
    					<option <?php if($_SESSION['wind_unit'] == "km/h") { echo 'selected'; } ?>>km/h
     
    				</select>
    				</form>
    			</td>
    o� majSession.php :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    <?php
    $_SESSION['wind_unit'] = $_GET['value'];
    ?>
    Mais quand j'execute �a, la variable de session n'est pas mise � jour.

    Auriez-vous une id�e du probl�me ?

    Merci,

    Nico

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    ton ajax est consid�r� comme une autre session je pense

    il doit falloir envoyer aussi le session Id
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  3. #3
    Invit�
    Invit�(e)
    Par d�faut
    salut,

    pour ma part, je tablerais bien sur
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    onchange="javascript:go('majSession.php?value='+this.value,'GET');"
    ou je mettrais plutot :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    onchange="javascript:go('http://jaime.la.viande/majSession.php?value='+this.value);"
    //mettre un nom de serveur, sinon c'est considéré comme fichier local et pe
    //desactivé par mesure de securité...
    voici un code qui "marche"
    Code : 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
     
    <html>
    <head>
    <script type="text/javascript">
     
    	function getXhr() {
    		var xhr = null; 
    		if(window.XMLHttpRequest) // Firefox et autres
    			xhr = new XMLHttpRequest(); 
    		else if(window.ActiveXObject){ // Internet Explorer 
    			try {
    				xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			} catch (e) {
    				xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			}
    		}
    		else { // XMLHttpRequest non supporté par le navigateur 
    			alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    			xhr = false; 
    		} 
    	return xhr;
    	}
     
    	function go(requete) {
    		var xhr = getXhr();
    		// On défini ce qu'on va faire quand on aura la réponse
    		xhr.onreadystatechange = function(){
    			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    			if(xhr.readyState == 4 && xhr.status == 200){
    				alert(xhr.responseText);//remarque, si  pas d'alerte, c'est que pas de retour serveur...
    			}
    		}
    		xhr.open("GET",requete,true);
    		xhr.send(null);
    	}
    </script>
    </head>
    <body>
    <select class="texte1" onchange="javascript:go('http://jaime.la.viande/majSession.php?value='+this.value,'GET');">
    	<option value="noeuds">noeuds</option>
    	<option value="km">km/h</option>
     
    </select>
     
    </body>
    </html>
    Tu remarqueras au passage les balises option que tu n'avais pas ferm�es!
    Apres tu peux rajouter tes echos, pour le value, c'est un d�tail...

    ps: c'est marrant, j'avais pomp� exactement la m�me requ�te je sais plus o� y a 5 ans d�j�!

  4. #4
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Citation Envoy� par DiverSIG Voir le message
    o� majSession.php :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    <?php
    $_SESSION['wind_unit'] = $_GET['value'];
    ?>
    Mais quand j'execute �a, la variable de session n'est pas mise � jour.

    Auriez-vous une id�e du probl�me ?
    Il manquerait pas un session_start quelque part ?
    Citation Envoy� par SpaceFrog Voir le message
    ton ajax est consid�r� comme une autre session je pense

    il doit falloir envoyer aussi le session Id
    Plus exactement, il va falloir v�rifier qu'un cookie de session existe bien, si ce n'est pas le cas, r�cup�rer l'identifiant de session dans l'URL et l'ajouter � ton get.
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  5. #5
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    491
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 491
    Par d�faut
    effectivement, en mettant un session_start() dans majSession.php, �a marche nickel :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    <?php
    session_start();
    $_SESSION['wind_unit'] = $_GET['value'];
    ?>
    Merci,

    Nico

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Modifier une variable de session sur onclick
    Par nicolas2603 dans le forum Langage
    R�ponses: 13
    Dernier message: 21/11/2014, 11h37
  2. R�ponses: 6
    Dernier message: 15/11/2007, 13h52
  3. modifier une variable de Session
    Par mouvma dans le forum Servlets/JSP
    R�ponses: 2
    Dernier message: 12/09/2007, 17h20
  4. [JSP] [Javascript] Modifier une variable de Session
    Par fady005 dans le forum Servlets/JSP
    R�ponses: 4
    Dernier message: 05/04/2007, 11h48
  5. [WebForms]Comment utiliser une variable de session depuis JavaScript ?
    Par ThunderBib dans le forum G�n�ral Dotnet
    R�ponses: 5
    Dernier message: 05/05/2006, 14h01

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