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 :

[remoteScript] Réactualiser page parent


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 234
    Par défaut [remoteScript] Réactualiser page parent
    Salut à tous,

    Je suis en train de changer le module d'identification de mon site web. Lorsque l'utilisateur clic sur "s'identifier", un voile recouvre le site le rendant non cliquable (div) et un div d'identification s'affiche par dessus.

    L'utilisateur entre alors son login et son mot de passe, et le formulaire est envoyé à une iframe invisible afin que la page ne soit pas rechargée dans son intégralité (Remote Scripting si j'ai bien compris).

    Voici le code PHP de mon script qui traite les données du formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if ($logValide) echo "<SCRIPT>window.parent.location.reload()</SCRIPT>";
    else echo "<SCRIPT>window.parent.document.getElementById('txtIdent').innerHTML=\"<FONT color=red>".$LANG['IdentNonValide']."</FONT>\"</SCRIPT>";
    Lorsque l'utilisateur se trompe (et donc n'est pas connecté : $logValide=0), le div d'identification affiche bien le message d'erreur.

    En revanche, lorsque l'identification marche, la page n'est pas rechargée comme je voudrais et rien ne se passe sur la page...

    Quelqu'un a une idée ?

    Merci infiniment

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    si le second cas fonctionne, c'est peut-être que tu as un niveau de frame imbriquée supplémentaire ?
    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($logValide) echo "<SCRIPT>self.top.location.reload()</SCRIPT>";
    qui rechargera à coup sûr la page principale ...

    A+

  3. #3
    Membre confirmé Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 234
    Par défaut
    Merci pour ta réponse.

    Je viens de tester ton code et ça ne change rien hélas...

    Au niveau de ma page principale, elle est de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <HTML>
    ...
    <IFRAME></IFRAME>
    <DIV id='identification' style='display:none'></DIV>
    <DIV id='principal'></DIV>
    ...
    </HTML>
    Je devrai donc retomber sur mes pieds logiquement ? Et pourtant ça n'est pas le cas... C'est comme si le javascript n'était tout simplement pas interprété.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par windmastr26 Voir le message
    Je devrai donc retomber sur mes pieds logiquement ? Et pourtant ça n'est pas le cas... C'est comme si le javascript n'était tout simplement pas interprété.
    En fait, ce qui m'étonne, c'est plutôt que la seconde condition soit bien exécutée

    C'est ton retour Ajax ces balises <script> ?

    Parce que normalement, il faut utiliser eval() pour exécuter une telle instruction JS (sans les balises <script>) ...

    A+

  5. #5
    Membre confirmé Avatar de windmastr26
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2009
    Messages : 234
    Par défaut
    Oui moi non plus je ne comprends pas Pourquoi le "false" marche et le "true" ne marche pas ? Alors qu'il s'agit pour les deux d'une instruction javascript visant la même entité (la frame parent)...

    J'ai essayé avec "eval" (avec et sans les "<SCRIPT>") mais rien de plus...

    Tu me parles d'Ajax mais on peut considérer que c'est de l'Ajax même sans faire appel à l'objet "XMLHttpRequest()" ? Car j'ai lu que le javascript passait mal en ajax (ce que je comprends vu que ça n'est pas l'intérêt de l'ajax d'exécuter du javascript), ce qui expliquerai pourquoi ça ne marche pas...

    Pourtant il s'agit juste d'exécuter du javascript dans une iframe...



    Help...

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par windmastr26 Voir le message
    J'ai essayé avec "eval" (avec et sans les "<SCRIPT>") mais rien de plus...

    Tu me parles d'Ajax mais on peut considérer que c'est de l'Ajax même sans faire appel à l'objet "XMLHttpRequest()" ? Car j'ai lu que le javascript passait mal en ajax (ce que je comprends vu que ça n'est pas l'intérêt de l'ajax d'exécuter du javascript), ce qui expliquerai pourquoi ça ne marche pas...
    Non, excuse-moi
    Ca n'a rien à voir avec Ajax : c'est juste moi qui ait plus l'habitude d'Ajax que des frames

    Tu es sûr de ton test de $logValide ?
    Je connais pas PHP, mais si la variable est du mauvais type (char au lieu de int, par exemple), peut être que le test est toujours false, non ?

    EDIT : Arf, non !
    Tu aurais toujours le message d'erreur
    Tu as essaye de remplacer l'instruction reload par une alert('OK'), par exemple ?

    A+

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

Discussions similaires

  1. Appel d'une fonction d'une page parente
    Par trach.sam dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/04/2006, 10h52
  2. Aide avec une popup et la page parente
    Par iomega dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 08/12/2005, 15h21
  3. redirection vers la page parent
    Par azizsos dans le forum ASP
    Réponses: 1
    Dernier message: 14/10/2005, 20h59
  4. Réactualisation page
    Par Fonzy17 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/01/2005, 14h59
  5. Revenir à la page parent
    Par nebule dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/12/2004, 21h36

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