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 :

[Abandonn�] Passage de variable dynamique dans un window.opener


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Avatar de Jarodd
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    852
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 852
    Par d�faut [R�solu] Passage de variable dynamique dans un window.opener
    Bonjour,

    Je cherche � passer une variable dans un window.opener. Le contexte : j'ai plusieurs pages qui appellent une popup unique, et celle-ci renvoie une variable en fonction de la page appelante.

    Voici ce que j'ai pour l'instant :

    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
     
    <script language="JavaScript" type="text/javascript">
    	var page = String(window.opener.document.title); // on récupère le nom de la page appelante
    	//DEBUG : 
    	//alert("Page : " + page);
    	if (page == 'New Action')
    	{
    		var champ = 'action_date';
    		alert("window.opener.document.forms[0]." + champ + ".type = \"text\";");
    		alert("window.opener.document.forms[0]." + champ + ".value = \"<?php echo $date; ?>\";");
    	}
    	else if (page == 'IRD')
    	{
    		var champ = 'activiteDate';
    		alert("window.opener.document.forms[0]." + champ + ".type = \"text\";");
    		alert("window.opener.document.forms[0]." + champ + ".value = \"<?php echo $date; ?>\";");
    	}
     
    	window.opener.focus();
    </script>
    L'alert() affiche bien les lignes window.opener..., les valeurs sont correctes, que ce soit le javascript ou le php.

    Seulement je ne sais pas comment les ex�cuter, quelle est la syntaxe pour afficher mon champ (ici en rouge) :
    window.opener.document.forms[0].champ.type = "text";

    J'ai aussi essay� avec un :
    document.write("window.opener.document.forms[0]." + champ + ".type = \"text\";");
    mais forc�ment cela m'�crit la commande dans la popup.

    Je suis plut�t d�butant en JS, je ne sais pas si c'est possible de faire passer cette variable, et si oui comment.

    Merci d'avance pour votre aide

    Edit 27/10 : r�solu
    Il fallait mettre :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    window.opener.document.getElementById(sourceI).value = "<?php echo $date; ?>";
    Merci � Florent d'HFR

  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 : 55
    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
    Une petite recherche t'aurais certainement permis de trouver ce lien.
    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 �clair�
    Avatar de Jarodd
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    852
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 852
    Par d�faut
    Oui d�sol�, j'avais vu ce lien (et d'autres) par Google, mais je n'avais pas compris les explications, d'o� ma demande d'aide...

    En revanche je viens d'en trouver un qui r�pond � ma question :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    window.opener.document.forms[0][champ].type = "text";
    Cela fonctionne parfaitement

    Merci Bovino et d�sol� du doublon

  4. #4
    Membre �clair�
    Avatar de Jarodd
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    852
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 852
    Par d�faut
    Je suis de nouveau bloqu� depuis tout-�-l'heure... Je ne parviens pas � r�cup�rer le nom de l'input de la page appelante (ce que j'ai mis en premier message ne fait finalement pas l'affaire).

    Voil� les 2 pages appelantes :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <input type="button" name="action_date" id="action_date" value="calendar" onClick="ouvrirPopup2('../calendrier/calendar.php', 'calendrier', 170, 170, 685, 200)"/>
    et

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <input name='activiteDate' id='activiteDate<?php echo $i; ?>' title='Click to modify'  value = '<?php echo dateFr($dateObjectif); ?>' onClick='ouvrirPopup2("../calendrier/calendar.php", "calendrier", 170, 170, 550, 100);' >
    Cela fait 2h que je cherche, de partout il est indiqu� d'utiliser getElementsByName ou getElementsById, et rien de ce que je teste ne fonctionne...

    Je voudrais r�cup�rer le name, qui est toujours fixe, pour identifier la page d'origine, pour ensuite pouvoir l'actualiser.

    Un petit conseil ?

  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 : 55
    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
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    window.opener.document.forms[0][champ].type = "text";
    Tu cherches � modifier le type de ton input ???

    Sinon,
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    window.opener.document.forms[0].elements[champ];
    ou
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    window.opener.document.getElementById(champ);
    il est indiqu� d'utiliser getElementsByName ou getElementsById
    Attention, c'est getElementById (sans s, car l'id doit �tre unique dans la page !
    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
    Membre �clair�
    Avatar de Jarodd
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    852
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 852
    Par d�faut
    Citation Envoy� par Bovino Voir le message
    Tu cherches � modifier le type de ton input ???
    Oui, l'input du premier code est un bouton

    Citation Envoy� par Bovino Voir le message
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    window.opener.document.forms[0].elements[champ];
    ou
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    window.opener.document.getElementById(champ);
    C'est bien ce que j'ai lu ailleurs, mais cela ne fonctionne pas, il me manque un truc pour piger ce fonctionnement : le getElementById r�cup�re la valeur de l'id et le getElementByName r�cup�re le name, c'est bien �a ? Si oui dans mon cas je ne peux faire qu'avec le name puisque l'id est dynamique. Donc pour mes tests j'ai mis activiteDate A la place de champ, qui est l'attribut name de mon input. Ce n'est pas lui qu'il faut indiquer ?

    J'ai mis pour v�rifier :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    var name = window.opener.document.getElementById(activiteDate);
    alert(name);
    Mais je n'ai aucun retour...

    Merci pour ton aide !

Discussions similaires

  1. R�ponses: 1
    Dernier message: 13/03/2010, 18h58
  2. Afficher une variable dynamique dans la barre des taches de windows
    Par mustang-ffw02 dans le forum Windows Forms
    R�ponses: 16
    Dernier message: 27/05/2007, 23h24
  3. R�ponses: 4
    Dernier message: 19/05/2006, 14h30
  4. Enregistrement d'une variable dynamique dans un fichier
    Par zarbydigital dans le forum Langage
    R�ponses: 13
    Dernier message: 24/12/2005, 21h28
  5. variable dynamique dans une fonction javascript
    Par Shivaneth dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 20/04/2005, 15h58

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