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 :

attendre le chargement d'une iframe avant submit


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de pitoumad
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 83
    Par défaut attendre le chargement d'une iframe avant submit
    Bonjour
    J'ai une fonction sur un bouton d'un formulaire pour lancer submit. Avant cela je veux charger une iframe pour récupérer une valeur (via sql) dans mon formulaire. Cela fonctionne bien, mais, mon code ne passe pas dans le window.onload, et donc pas de submit.
    Pourquoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function submit_selections()
    {
    document.iframe_OT.location.href="iframe_OT.php";
    window.onload = function () 
       {
        document.saisie.NOM.disabled=false;
        document.saisie.PRENOM.disabled=false;
     
        document.saisie.submit();
       }
    }
    Est ce que je fais un bon usage de window.onload ?

    Merci de votre aide !

  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,
    Citation Envoyé par pitoumad Voir le message
    Est ce que je fais un bon usage de window.onload ?
    non, effectivement

    Actuellement, tu pointes sur le onload de la page mère (celle qui contient l'iframe).
    Pour faire ce que tu souhaites, il faut utiliser le onload de la page contenue dans l'iframe.
    Simplifie la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function submit_selections()
    {
       document.saisie.NOM.disabled=false;
       document.saisie.PRENOM.disabled=false;
     
       document.saisie.submit();
    }
    Ensuite, soit tu laisses la fonction submit_selections() (version ci-dessus) dans la page mère, mais dans le onload de l'iframe, il faudra appeler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    parent.submit_selections();
    Soit tu déplaces la fonction (sa déclaration) dans la page de l'iframe et tu pourras l'appeler normalement avec mais dans ce cas, il faut modifier la fonction (version ci-dessus) pour ajouter un préfixe parent. à chaque instruction qu'elle contient (car chaque instruction fait référence à la fenêtre mère).

    Bien sûr, il faudra laisser l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.iframe_OT.location.href="iframe_OT.php";
    dans le bouton actuel ...

    A+

  3. #3
    Membre confirmé Avatar de pitoumad
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 83
    Par défaut
    Le petit hic, c'est que mon iframe est appelé aussi dans mon formulaire (pour mettre à jour un champ en fonction d'un autre sur un onblur), et pas seulement au moment du clic sur le bouton submit.
    Comment je fais pour différencier les deux cas de figure ?

  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
    Ajoute un paramètre dans l'url servant à charger l'iframe.
    Il te permettra de distinguer les différents cas ...

    A+

  5. #5
    Membre confirmé Avatar de pitoumad
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 83
    Par défaut
    Ok, merci
    Je vais tester et vous tiens au courant
    A+

  6. #6
    Membre confirmé Avatar de pitoumad
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 83
    Par défaut
    J'ai testé et ça fonctionne. A la seule différence que je n'ai pas eu à utiliser un onload dans l'iframe, car l'appel de ma fonction submit (fichier parent) est conditionné à un test :

    j'ai sauvegardé ma variable dans un formulaire, car j'ai d'autres traitements par ailleurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="OkSubmit" id="OkSubmit" value="<? echo $HTTP_POST_VARS['OkSubmit']; ?>">
    Je passe ma valeur dans le formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.ici.OkSubmit.value=<?echo$submitok;?>;
    et je teste : 1 je lance, 0 je ne lance pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($HTTP_POST_VARS['OkSubmit']==1)
    {
    ?><script>parent.submit_selections();</script><?
    }
    Merci pour votre aide et bonne journée au forum !

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

Discussions similaires

  1. Attendre la fin du chargement d'une page avant d'en charger une autre
    Par La Mite dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/07/2011, 17h39
  2. test fin de chargement d'une Iframe
    Par gregcat dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/11/2007, 20h24
  3. Réponses: 1
    Dernier message: 16/11/2007, 16h01
  4. attendre la fin de chargement d'une page avant de continuer le script
    Par jibouze dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/06/2006, 09h50
  5. message lors du chargement d'une iframe
    Par zorba49 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/09/2005, 17h27

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