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 :

Remplir un input text dans une iframe


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 2
    Points
    2
    Par défaut Remplir un input text dans une iframe
    Bonjour,

    J'utilise une galerie Piwigo sur mon site pour y afficher les différents logos que je propose d'imprimer sur des articles vierges.

    Pour chaque logo, un bouton "afficher le formulaire de demande de devis" est présent en "description" et fonctionne comme ceci:


    Code dans la description:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <input type="button" value="Choisir un support pour ce logo et demander un devis" onclick="showStuff('formulaire')">
     
    <input type="button" value="Cacher le formulaire" onclick="hideStuff('formulaire')">
     
    <div id="formulaire" style="display:none"><iframe id="frame2" name="frame2" src="http://www.xxx.fr/form/form1.html" width="100%"  height="1515em" vspace="0" hspace="0"
    marginwidth="0" marginheight="0" scrolling="no" noresize>
    </iframe></div>


    Code dans piwigo/include/page_tail.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type="text/javascript">
    	function showStuff(id) {
    		document.getElementById(id).style.display = 'block';
    	}
    </script>
     
    <script type="text/javascript">
    	function hideStuff(id) {
    		document.getElementById(id).style.display = 'none';
    	}
    </script>

    Jusqu'à là, pas de problème.


    Chaque logo a un nom.
    Pour savoir de quel logo il s'agit à chaque demande de devis, j'ai glissé un input text en display:none dans le formulaire. Il porte le nom de "IDlogo".
    Pour remplir ce champ, j'utilise ce code dans la description de chaque logo (dans le onclick du même bouton que pour afficher le formulaire), en replaçant bien sûr le nom du logo à chaque fois:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javascript:frame2.document.getElementById('IDlogo').value='nom_du_logo'

    Ce code a toujours fonctionné jusqu'à ce que j'effectue des changements visuels sur ma galerie et que je transfert tout le site des pages persos de Free à OVH. Je recevais par mail toutes les indications fournies par le client + le nom du logo.

    Pourquoi ne reçois-je plus le nom du logo?
    Y a-t-il un autre moyen pour parvenir à mes fins?

    Bon après-midi!

  2. #2
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    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 !

  3. #3
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Merci, mais ça parait bien plus compliqué...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javascript:frame2.document.getElementById('IDlogo').value='nom_du_logo
    fonctionnait très bien... N'y a-t-il pas un moyen pour se servir de cette première solution?

  4. #4
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    le fait de changer d'hébergeur ne peut pas avoir d'incidence sur du code exécuté coté client ...
    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 !

  5. #5
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Mais qu'est-ce qui peut clocher alors?

    On est d'accord que mon code est correct et devrait fonctionner?

  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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.frames['frame2'].document.getElementById('IDlogo').value='nom_du_logo'
    regarde ensuite du coté de documentElement et du lien donné plus haut qui est plein d'enseignements concernant la communication entre fenêtres
    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
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    J'ai essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.frames['frame2'].document.getElementById('IDlogo').value='nom_du_logo'
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.frames['frame2'].document.getElementById('IDlogo').innerHTML='nom_du_logo'
    Mais sans succès...

    Le problème de tes autre solutions est que tout script js mis dans le champ "description" d'un logo est ignoré. Je ne peux mettre que du html. C'est un champ prévu à la base pour du simple texte.

  8. #8
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    mettre du script dans un input ? j'ai du rater un episode ?
    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 !

  9. #9
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    C'est pas un input, c'est une galerie toute faite, ce que j'appelle le champ description est juste une "case" qu'on peut remplir du côté administration avec une description de l'image correspondante.

    Sur cette page (qui n'est pas mienne): http://photograph.piwigo.net/picture.../AnimalsFloras
    La description est "sortie a la bambouseraie".

    On ne peut pas y placer un code html complet avec <head></head>. Juste du simple texte ou du html qui se placera directement dans le body de la page.

  10. #10
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Le seul moyen de faire prendre en compte un script à la galerie, est de le placer dans le fichier page_tail.php en la bidouillant un peu.

    Dans la 3ème solution de la page que tu m'as envoyé, il faut placer la valeur qu'on veut transmettre dans la page mère.
    Je devrais donc la mettre dans ce page_tail.php. Mais étant donné que ce fichier page_tail.php est commun à toutes les pages (tous les logos), la valeur transmise serait la même pour tous les logos. Alors que ce que je veux justement est que la valeur transmise soit différente pour chaque logo, pour pouvoir les reconnaître.

  11. #11
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Le debugger IE m'indique un "accès refusé" sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "frame2.document.getElementById('IDlogo').value='nom_du_logo'"
    Idem pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "document.frames['frame2'].document.getElementById('IDlogo').value='nom_du_logo'"
    Qu'est-ce que ça signifie? Et comment le contourner?

  12. #12
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Si l'iframe n'est pas conforme à la Same Origin Policy, alors pas moyen d'y accéder pour des raisons de sécurité.
    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

  13. #13
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    L'iFrame est sur le même site que la galerie (et donc la page sur laquelle je l'appelle):

    L'URL de la page que j'appelle avec l'iFrame: http://www.site.fr/form/form1.html

    L'URL de la page sur laquelle j'appelle l'iFrame: http://www.site.fr/piwigo/picture.php?/681

  14. #14
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 957
    Points : 44 119
    Points
    44 119
    Par défaut
    Bonjour,
    la meilleur façon d'accéder à ton objet IFRAME est quand même document.getElementById('frame2').

    Ensuite pour accéder à ton élément de l'IFRAME il te faut passer par l'objet document de l'IFRAME à savoir contentWindow.document

  15. #15
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('frame2').contentWindow.document.getElementById('IDlogo').value='nom_du_logo'

  16. #16
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Ça ne fonctionne toujours pas :/
    Le debogger IE me dit encore "Accès refusé"...

  17. #17
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    C'est que tu n'est pas sur le même domaine
    cela peut arriver en local ...
    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 !

  18. #18
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Mais je ne comprend pas, puisque les deux pages sont sur le même domaine, sur le même site oO Elles se trouvent juste dans des sous-répertoires différents

  19. #19
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    tu ne dois pas tester par le protocole http mais par un lien relatif en local,
    teste sur un serveur distant ...
    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 !

  20. #20
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Mars 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 14
    Points : 2
    Points
    2
    Par défaut
    Hu? oO
    ^^"

Discussions similaires

  1. Input text dans une url
    Par Momo James dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/04/2014, 16h30
  2. Piloter input text dans une iframe
    Par Asdorve dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/06/2011, 16h48
  3. mise en forme d'un texte dans une iframe
    Par kovrov dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 10/12/2010, 11h37
  4. Insérer du texte à l'emplacement du curseur dans une iframe
    Par mlny84 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/07/2009, 11h31
  5. Remplir des input de type text dans une page HTML
    Par Rodrick dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/06/2007, 11h19

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