Bonjour,

J'aimerai récupérer des données de session utilisateur pour les traiter avec jQuery.
Précision : c'est dans le cadre d'un systeme de gestion des favoris. Je veux donc récupérer dans jQuery les favoris de l'utilisateur en cours, qui sont pour le moment stockés dans un array de la session, côté serveur donc.

Alors j'ai bien une idée qui est la suivante (mais pas certain que ce soit la plus propre):
1/ je fais un requête sur ma variable de session que je passe à la vue dans une div

<?php
$mavariabledesession = $_SESSION'mavariable'];
?>
<div class="mavariable">
<?php
echo(json_encode($mavariabledesession));
?>
</div>

2/ j'y accède ensuite avec jQuery avec un selecteur de classe

</script>
$(.mavariable);
</script>

Mes questions :
1/ Voyez-vous d'autres méthodes plus propres ?

2/ Est-ce que la fonction php json_encode retourne un objet ou un tableau exploitable directement dans jQuery (sans avoir besoin de l'afficher dans le html avec un echo par exemple) ?

3/ Sinon Peut-on, avec un autre moyen, passer directement une variable de session utilisateur à jQuery sans passer par une requête Php mais plutot avec un script par exemple ?

Merci d'avance.

5 réponses


Natà
Réponse acceptée

Salut,
Oui, il y beaucoup plus simple ^^

<script type="text/javascript">
$(function(){
    var maVariableDeSession = '<?php echo $mavariabledesession; ?>';    
});
</script>
Natà
Réponse acceptée

Oui oui c'est bien ça;
Tu peux même ne pas déclarer ta variable en fait :

<script type="text/javascript">
$(function(){
    var maVariableDeSession = '<?php echo $_SESSION'mavariable']; ?>'; 
});
</script>
JPH
Auteur

Ok Merci :) Si je te suis bien, et c'est pour m'assurer que j'ai bien capté :) ,
Je met directement ton script dans mon fichier PHP comme suit :

<?php
$mavariabledesession = $_SESSION'mavariable'];
?>
<script type="text/javascript">
$(function(){
    var maVariableDeSession = '<?php echo $mavariabledesession; ?>'; 
});
</script>

Et forcément, je peux maintenant accéder à $maVariableDeSession directement dans jQuery...

Ai-je bien suivi ? :)

JPH
Auteur

Ok ben super :) Les choses les plus simples sont les meilleures.
Et en 3 lignes tu viens de résumer le slogan de jQuery "Write less, do more" :)

Merci bien en tout cas, j'aurai eu ma réponse rapidement et elle est bien claire !

Bonne soirée!

Héhé, pas de soucis, bonne soirée à toi aussi. :)