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 :

Ajouter du texte dans un input à partir d'une autre fenêtre


Sujet :

JavaScript

  1. #1
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 239
    Points
    8 239
    Par défaut Ajouter du texte dans un input à partir d'une autre fenêtre
    bonjour,
    je risque de me faire tuer à cause de cette question

    je voudrais ouvrir une fenêtre à partir d'un lien (jusque là, pas trop dur) dans laquelle on sélectionne quelque chose et que ça envoie du texte dans un input de la page appelante. si vous ne voyez pas : cliquez sur "Voir plus de Smilies" à gauche quand vous postez et cliquez sur un smiley. c'est ça que je veux faire. vous me direz : plonge toi dans phpbb ! oui mais d'ici à ce que je trouve

    j'ai trouvé ce code dans phpbb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function emoticon(text) {
    	text = ' ' + text + ' ';
    	if (opener.document.forms['post'].message.createTextRange && opener.document.forms['post'].message.caretPos) {
    		var caretPos = opener.document.forms['post'].message.caretPos;
    		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
    		opener.document.forms['post'].message.focus();
    	} else {
    	opener.document.forms['post'].message.value  += text;
    	opener.document.forms['post'].message.focus();
    	}
    }
    mais je comprend pas grand chose

    est-ce que quelqu'un veut bien m'expliquer en sachant que je suis très nul en js ?


  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 38
    Points : 33
    Points
    33
    Par défaut
    je ne t'expliquerais pas cette fonction car je ne connais pas le
    createTextRange ( si qqn veut bien m'expliquer )

    mais ce que tu as besoin de savoir :
    pour faire reference a la page appelante c'est "opener"
    et la page actuelle c'est window.document.
    ( ou juste document )
    donc
    window.opener=fenetre appelante
    window.opener.document=fenetre appelante reference au document
    window.opener.document.forms[0]=cf precedent+formulaire N°1
    window.opener.document.forms[0].nomdutextarea=( pas besoin de + de precision )
    window.opener.document.forms[0].nomdutextarea.value+="coucou"
    = value du textarea avec coucou ajouté a la fin ( concatenation de l'ancienne valeur + coucou )
    voila

    euh en tout cas si qqn passe et connait la methode createTextRange
    je veut bien qu'il complete mon expliquation
    L'être humain, en général, dans la vie, réacte. On réacte, c'est à dire qu'on fait ce qu'on est supposé faire. Travailler, manger... J'm'excuse de l'expression; chier, mais je trouve qu'un être humain doit créer. JC Vandamme

  3. #3
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 239
    Points
    8 239
    Par défaut
    j'ai réussi à m'en sortir

    code dans la page appelante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script language=\"javascript\">
    	function adds(fic)
    	{ wchoix=window.open(fic,'add_class','width=400,height=250,top=50,left=50'); }
    	</script>
     
    <form method=\"post\"><table><tr>
    		<td><span class=\"txt\">Classes du professeur :</span></td>
    		<td><input name=\"user_class\"></td>
    		<td><a href=\"javascript:adds('profs_ext.php')\" class=\"link\">Ajouter</a></td>
    	    </tr></table>
    ...
    </form>
    dans la page ouverte :
    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
    <script language="javascript">
    function add_class(truc)
    	{ 
    	window.opener.document.forms[0].user_class.value += truc.options[truc.selectedIndex].value + ',';
    	self.close();
    	}
    </script>
     
    <form name="toto">
    <select name="choix" onChange="add_class(this)">
    <?
    //code php pour faire une liste longue de <option></option>
    ?>
    </select>
    </form>
    c'est certainnement pas très joli mais ça a l'avantage de fonctionner

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/03/2014, 19h05
  2. Remplir une zone de texte dans un gui à partir d'une autre foction
    Par Wassim123 dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 04/02/2009, 16h39
  3. Changer le texte d'un label à partir d'une autre classe
    Par joannak20 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 15/01/2009, 11h37
  4. Réponses: 12
    Dernier message: 26/03/2008, 16h40
  5. Réponses: 1
    Dernier message: 21/11/2007, 21h53

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