Page 1 sur 1

communication page mere popup

Posté : 24 août 2006, 13:19
par jujub
Bonjour

Jai du mal a faire comuniquer mes deux fenetre :

la popup fonction + formulaire

Code : Tout sélectionner

echo"<script language='JavaScript'> function Reporter(choix) { opener.parent.document.getElementById('choix[]').value = choix ; } </script>"; //echo $dossier; echo"<form>"; //apel de la fonction de la liste de check box echo"</form>";
dans la popup une une fonction qui créer une liste de checkbox du type

Code : Tout sélectionner

[....] <input type=checkbox name="choix[]" value='.$file.' OnClick=="Reporter(this)"> [....]
dans la page mere
j'appele la popup ainsi depuis la page principale :

Code : Tout sélectionner

echo"<script language='Javascript'> function OuvrirPopup(page,nom,option) { window.open(page,nom,option); }"; <form action='toto' method=post name='origin'> <td valign=top> <INPUT type='text' name='choix' disabled> echo"<INPUT type='button' value='Ajouter ' onClick=OuvrirPopup('popup.php','self','width=600,height=500,menubar=no,status=no')> </form> ";
dois je faire passer dans la fonction de la liste de checkbox $choix?

Comment récupéere les varleur des checkbox dans

Code : Tout sélectionner

<INPUT type='text' name='choix' disabled>
Merci :wink:

Posté : 24 août 2006, 15:09
par Ryle
Dans ta fonction Reporter, c'est le champ "choix" de ta page mere que tu met à jour, pas le tableau :)

Essaye comme ceci :

Code : Tout sélectionner

function Reporter(choix) { parent.opener.getElementById('choix').value = choix ; }
A noter que si deux ou plusieurs cases sont cochées, tu n'auras la valeur que de la dernière...

Posté : 24 août 2006, 15:42
par Invité
ça ne passe pas .......

Sinon comment puis je faire pour obtenir toute mes valeur cochées....

Posté : 24 août 2006, 16:01
par Ryle
Arf, vi faut aussi peut être qu'il y ait un élément avec cet Id dant ta fenêtre parent ;)

Code : Tout sélectionner

<INPUT type='text' name='choix' id="choix" disabled>
Pour obtenir la liste des valeurs cochées, tu peux les concaténer à la suite au lieu d'écrase ta valeur à chaque fois :

Code : Tout sélectionner

function Reporter(choix) { var obj = parent.opener.getElementById('choix') if (obj.value != "") // s'il y a déjà des éléments sélectionnés les sépare avec une virgule obj.value += ","; obj.value += choix ; // ajoute le dernier choix à la chaine }
Mais tu vas avoir encore un peu de travail pour éviter les doublons éventuels et supprimer un élément que tu as ajouté si une case est décochée.

Le mieux serait de mettre un bouton valider qui lorsqu'il est cliqué parcours toutes les cases à cocher de ta popup, liste les valeurs pour les cases cochées uniquement, et met à jour ta fenêtre mère à ce moment là seulement...