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 :

Envoyer un formulaire contenu dans une iframe


Sujet :

JavaScript

  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut Envoyer un formulaire contenu dans une iframe
    Bonjour,

    Dans une interface Php, je voudrais, sur le onclick d'un bouton, envoyer un formulaire contenu dans une iframe, elle-même contenue dans un formulaire.

    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form .....>
    ...
    <iframe name='frameInsertFichier' id='frameInsertFichier' src='...' ...>
    //Cette iframe contient mon formulaire contenant un input file
    </iframe>
    ...
    <input type='button' value='Enregistrer' onClick=\"parent.frameInsertFichier.ajoutFichier.submit();reste du traitementJs;\">
    Lorsque je clique sur le bouton, j'obtiens l'erreur "parent.frameInsertFichier.ajoutFichier is undefined"

    Quelqu'un aurait une idée sur la manière dont je dois procéder?

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Il ne faut pas passer par parent...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick=\"self.frameInsertFichier.ajoutFichier.submit();reste du traitementJs;\"
    sous réserve bien sûr que ton iframe se trouve sur le même domaine
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    onclick=\"self.frameInsertFichier.ajoutFichier.forms[0]submit();reste du traitementJs;\"

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut
    Merci beaucoup pour vos réponses.
    Malheureusement, après avoir modifié mon code de la sorte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    input type='button' value='Enregistrer' onClick=\"self.frameInsertFichier.ajoutFichier.submit();...\">
    j'ai toujours le message d'erreur suivant :
    "self.frameInsertFichier.ajoutFichier is undefined"

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    "self.frameInsertFichier.ajoutFichier is undefined"
    C'est undefined pour nous aussi vu qu'on ne sait pas à quoi ressemble le HTML correspondant
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    sinon voir les contribtions le post sur les conversations entre fenetres
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut
    Voici les deux sources :

    Mon interface :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <?php
    include_once("../fichiersInclusion/classes.php");
    session_start();
     
    $index = $_POST['index'];
    $tabObjCampagnes = unserialize($_SESSION['tabCampagnes']);
    $objCampagne = $tabObjCampagnes[$index];
    $_SESSION['campagne'] = serialize($tabObjCampagnes[$index]); //Servira dans le script d'enregistrement des modifications
     
    echo "<table width='602' height='280' border='0' align='center' cellpadding='0' cellspacing='0'>
      <tr>
        <td align='left' valign='top'>
         <br>
         <form name='modifCamp' id='h3sForm' method='post' action='' enctype='multipart/form-data'>
         <fieldset>
         <fieldset class=radio>
         <table width='100%' border='0' cellpadding='0' cellspacing='0'>
          <tr>
           <td colspan='2'>
            Accroche :<br> <textarea name='accroche' id='accroche' cols='' rows='' style='width: 100%;'>" . $objCampagne->getAccroche() . "</textarea>
           </td>
          </tr>
          <tr>
           <td width='50%'>
            Date de début :<br><input type='text' name='dateDebut' id='dateDebut' ";
     
    if($objCampagne->getDate('debut', 'affichage') != NULL)
     echo "value='" . $objCampagne->getDate('debut', 'affichage') . "'";
    else
     echo "value='jj/mm/aaaa'";
     
    echo " size='10' maxlength='10' onFocus='select();'>
           </td>
           <td width='50%'>
            Date de fin :<br><input type='text' name='dateFin' id='dateFin' ";
     
    if($objCampagne->getDate('fin', 'affichage') != NULL)
     echo "value='" . $objCampagne->getDate('fin', 'affichage') . "'";
    else
     echo "value='jj/mm/aaaa'";
     
    echo " size='10' maxlength='10' onFocus='select();'>
           </td>
          </tr>
          <iframe name='frameInsertFichier' id='frameInsertFichier' src='../fichiersInclusion/insertAjoutFichierCibles.html' frameborder='0'>
          </iframe>
          <tr>
           <td colspan='2'>
            <br><br><input type='button' value='Enregistrer' onClick=\"alert(document.getElementById('frameInsertFichier').forms[0].name);\"><br><br>
            <div id='erreur' align='center'>
            </div>
           </td>
          </tr>
         </table>
         </fieldset>
         <center>
         </fieldset>
        </td>
      </tr>
    </table>
    </form>";
     
    //A ajouter dans le onclick de enregistrer
     
    ?>
    Mon fichier inclu dans mon iframe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form name='ajoutFichier' id='ajoutFichier' method='post' action='../transferts/ajoutFichierCibles.php' enctype='multipart/form-data'>
     <tr>
      <td colspan='2'>
       <input type='hidden' name='MAX_FILE_SIZE' value='10240000000'>
       Nouveau fichier :<br><input type='file' name='fichierCibles' id='fichierCibles'>
      </td>
     </tr>
    </form>

  8. #8
    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,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.frames['frameInsertFichier'].document.forms['ajoutFichier'].submit();
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('frameInsertFichier').document.forms['ajoutFichier'].submit();
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('frameInsertFichier').document.getElementById('ajoutFichier').submit();
    ??

    A+

  9. #9
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut
    Encore merci à tous pour votre aide...

    Voici les 3 messages d'erreurs reçus lors des trois essais avec les propositions d'EBZZ :

    1. "document.frames is undefined"
    2. "document.getElementById("frameInsertFichier").document is undefined"
    3. "document.getElementById("frameInsertFichier").document is undefined"

    Je patauge un max...

  10. #10
    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 dubitoph Voir le message
    1. "document.frames is undefined"
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.frames['frameInsertFichier']....
    Pour les 2 autres ... c'est un échec
    (ne permet que de manipuler le conteneur de l'iframe et non le contenu)

    A+

  11. #11
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut
    Merci beaucoup E.Bzz!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.frames['frameInsertFichier'].document.forms['ajoutFichier'].submit();
    fonctionne!

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

Discussions similaires

  1. [Firefox] Dechargement d'un applet contenu dans une IFRAME
    Par magnus2005 dans le forum Applets
    Réponses: 0
    Dernier message: 05/12/2007, 11h27
  2. Positionnement de contenu dans une iframe
    Par Simcobe dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 21/10/2007, 19h52
  3. Accès aux données contenues dans une Iframe
    Par Jérémy Lefevre dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/10/2007, 11h24
  4. Utilisez fonction contenue dans une iframe
    Par chillansky dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/08/2006, 14h56
  5. Valider un formulaire contenu dans une iframe
    Par snoopy5.0 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/04/2005, 11h14

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