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 :

AJAX, javascript et variable de session PHP


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2003
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 51
    Points : 38
    Points
    38
    Par défaut AJAX, javascript et variable de session PHP
    Bonjour à tous !

    Alors c'est vendredi j'ai peut-être la tête en sky mais je galère

    Pour faire simple...

    J'ai ma page "A.php" qui contient un formulaire HTML avec quelques champs.
    Lorsque je clique sur le bouton de validation du formulaire, j'appelle une fonction javascript qui envoie une requete AJAX au serveur.

    <input type="button" value="Envoyer" onclick="javascript:clic();"/>

    La fonction clic envoie une requete sur le fichier "verif.php" avec pour paramètre un des champs. L'url est donc du style : verif.php?valeur=16

    De son coté le serveur fait les vérifs nécessaire et renvoie une réponse (JSON). Cette réponse contient des informations (1 si ok, 0 si ko avec un message d'erreur correspondant et une autre information).

    Soit dans le cas d'une vérif ok un message du style :
    $str = <<<STR
    [
    {"reponse": "1", "msg": "", "valeur": "12"}
    ]
    STR;

    Et dans le cas d'une vérif ko un message du style :
    $str = <<<STR
    [
    {"reponse": "0", "msg": "erreur bidule", "valeur": "null"}
    ]
    STR;

    Si vous ne connaissez pas JSON ne vous formalisez pas, c'est juste une méthode pour pouvoir récupérer plusieurs info en une seule requête AJAX...

    Donc je parse ensuite ma chaine JSON afin d'avoir les valeurs de reponse, msg et valeur dans 3 variables...
    Si reponse = 1 alors je redirige mon utilisateur sur la page B.php...
    Pour cela, dans ma fonction javascript je fais : document.location.href = "pageB.php";

    Et c'est là que j'ai un problème... Je veux transmettre le contenu de la variable "valeur" à la page suivante sans passer par l'adresse !
    Donc j'ai essayé plusieurs choses...

    1. La mettre dans la session dans le fichier verif.php avant que celui ci ne renvoie la reponse JSON... Ca ne marche pas... Surement car la requete étant exécutée par AJAX il ne fait pas le lien entre AJAX et la session de l'utilisateur.

    2. J'ai essayé de la mettre dans le formulaire. Une fois que je récupére les infos de la requete AJAX, je mets la valeur dans un champ hidden de mon formulaire... Le problème c'est que quand je fais $_POST dans la page B... Y a personne dans cette valeur ni dans les autres champs d'ailleurs... Normal je ne fais pas de SUBMIT...
    Surement que ca doit être possible... Je pense que la solution doit être là mais je ne suis pas trés bon en javascript... Donc moi j'ai ca :
    <input type="button" value="Envoyer" onclick="javascript:clic();"/>

    Est-ce qu'il y a moyen au lieu de faire un truc comme ca...

    <input type="submit" value="Envoyer" onclick="javascript: if clic() go(pageB.php);"/>

    En gros, si la fonction javascript clic me retourne true, je submit mon formulaire vers la page B.
    Sinon je pourrais la passer par l'adresse et faire une redirection immédiate une fois mise en session afin que l'utilisateur ne la voit pas...

    Qu'est-ce qu'il vous semble le mieux... Et si vous avez des idées je suis preneur parce que là... Je rame

    Merci d'avance à tous

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par cdryk Voir le message
    Qu'est-ce qu'il vous semble le mieux... Et si vous avez des idées je suis preneur parce que là... Je rame
    On n'a pas de pétrole, mais on a des idées!

    Citation Envoyé par cdryk Voir le message
    Si vous ne connaissez pas JSON ne vous formalisez pas, c'est juste une méthode pour pouvoir récupérer plusieurs info en une seule requête AJAX...
    Mais si, on connais JSON!

    Citation Envoyé par cdryk Voir le message
    1. La mettre dans la session dans le fichier verif.php avant que celui ci ne renvoie la reponse JSON... Ca ne marche pas... Surement car la requete étant exécutée par AJAX il ne fait pas le lien entre AJAX et la session de l'utilisateur.
    Bonne idée, ça devrait marcher. C'est à mon avis la solution la plus propre. En tout cas c'est celle que j'aurais choisie. Le fait que la requete soit ajax ne change rien du tout à la session utilisateur. Ca devrait fonctionner, tu dois avoir une erreur de syntaxe quelque part.

    Citation Envoyé par cdryk Voir le message
    2. J'ai essayé de la mettre dans le formulaire. Une fois que je récupére les infos de la requete AJAX, je mets la valeur dans un champ hidden de mon formulaire...
    Bonne idée aussi (quoique moins propre que la précédente).
    Il te suffit de faire un submit du formulaire, plutot que de changer le formulaire, tu peux même en créer un completement caché, rien que pour ça. Et tu fais un submit dessus en Javascript, avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms['monFormulaire'].submit();
    Cependant, si ton résultat est confidentiel (et que c'est pour ça que tu ne veux pas le mettre dans la barre d'adresse), la premiere solution est bien plus sécurisée.

    Tous tes essai avec le JS sur les boutons, ça ne marchera pas, parceque la requete Ajax est asynchrone : Le code continue à s'executer, sans attendre le résultat de la requete.

Discussions similaires

  1. [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
  2. Réponses: 8
    Dernier message: 13/07/2006, 10h04
  3. Réponses: 1
    Dernier message: 07/07/2006, 14h56
  4. ZoneAlarm bloque mes variables de session PHP en local
    Par GritNatz dans le forum Sécurité
    Réponses: 3
    Dernier message: 24/06/2006, 14h20
  5. Deboggeur de variables de sessions PHP
    Par joe_le_mort dans le forum Langage
    Réponses: 10
    Dernier message: 14/11/2005, 23h22

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