34 votes

comment fermer la boîte à couleurs dans un iframe ?

J'ai une page manageGroup.php, où l'utilisateur peut également ajouter un membre au groupe. J'ai utilisé une colorbox pour montrer le addGroupMember.php. Maintenant j'ai besoin de fermer cette colorbox une fois que j'ai soumis le formulaire.

javascript que j'utilise dans manageGroup.php

<script language="javascript" type="text/javascript" src="js/jquery-1.3.2.js"></script>
<script type="text/javascript" src="js/dropdown.js"></script>
<script type="text/javascript" src="js/jquery.colorbox.js"></script>
<script type="text/javascript">
 $(document).ready(function(){
 $(".iframe").colorbox({width:"80%", height:"80%", iframe:true});
 });
</script>

Le lien que j'utilise pour ouvrir colorbox

<a class="iframe" href="addGMember.php?id=<?php echo base64_encode($fetch->g_id)?>">Add Member</a>

le code dans addGroupMember.php est comme ceci:-

if($_POST['add']=="Go")
{
  $gid = $_POST['id'];
  $ii=0;
  $insert = "INSERT INTO ".DBGMEMBER." (gm_g_id,gm_m_id) VALUES ";
  foreach($_POST['gMember'] as $gMember)
  {
    if($ii==0)
    {
        $insert .= " ('".$gid."' , '".$gMember."')";
    }
    else
    {
        $insert .= " ,('".$gid."' , '".$gMember."')";   
    }
    $ii++;
  }
  $db->execute($insert);// after this i want to close the colorbox
  echo "<script>parent.$.fn.colorbox.close(); </script>";// code i used, but not working
}

68voto

Mr_Nizzle Points 2414

Celui-ci a parfaitement fonctionné pour moi et devrait fonctionner pour vous.

parent.jQuery.colorbox.close()

16voto

Ashish Rajan Points 687

Je l'ai fait faire pour moi, d'une manière un peu folle, mais vous pouvez aussi essayer.

Supposons que votre page dans l'iframe soit x.php avec un formulaire nommé xyz.

<?php
  if($_post['submit']=='Submit')
  {
    //some php code here
    if(success)
     echo "<script>parent.$.fn.colorbox.close(); </script>";
    else
    {
      //some error handling here;
    }
  }
?>
<form name='xyz' action='x.php'>
 //some html code here
 <input type='Submit' name='submit' />
</form>

8voto

fredrik Points 5010

Premier : Développez votre question. L'information que vous avez fournie est un peu courte. Il n'y a aucune chance que quelqu'un puisse saisir ce que vous faites. Incluez également quelques exemples de code supplémentaires.

La seule chose que je peux supposer, c'est que vous essayez de déclencher la méthode de la façon dont elle est écrite. Tout ce que vous ajoutez à l'objet $.fn est lié à tous les objets jQuery.

// doesn't work
$.fn.colorbox.close()
// proper way
$('idOfDomElement').colorbox.close()

..fredrik

4voto

JustinJason Points 71

Assurez-vous que la page est chargée dans l'iFrame. Toutes les références nécessaires au js colorbox, jQuery js ne sont pas nécessaires.

Alors, l'appel rapproché des parents fonctionnera :

parent.$('.yourElement').colorbox.close();

4voto

steve Points 48

Juste ça

parent.$.colorbox.close()

semble fonctionner pour moi !

Je l'ai utilisé comme ça, sans même une référence à un quelconque JS dans le fichier chargé dans l'iframe.

  <a href="javascript:parent.$.colorbox.close()">close</a>

seul dans un fichier HTML vierge semble fonctionner.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X