communication page mere popup

Eléphant du PHP | 191 Messages

24 août 2006, 13:19

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:
tu as la splendeur d'un enterrement de première class e

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

24 août 2006, 15:09

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...

Invité
Invité n'ayant pas de compte PHPfrance

24 août 2006, 15:42

ça ne passe pas .......

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

24 août 2006, 16:01

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...