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
    Membre averti
    Inscrit en
    F�vrier 2003
    Messages
    51
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2003
    Messages : 51
    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 confirm�

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

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

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 4 050
    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