j'ai une page manageGroup.php, où l'utilisateur peut également ajouter un membre au groupe. J'ai utilisé colorbox pour afficher le addGroupMember.php. Maintenant, je dois fermer cette colorbox une fois que j'ai terminé de soumettre 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
}
Celui-ci a parfaitement fonctionné pour moi et devrait fonctionner pour vous
parent.jQuery.colorbox.close()
je l'ai fait pour moi, un peu de façon folle, de toute façon vous pouvez aussi l'essayer.
Supposons que votre page dans iframe soit x.php ayant une forme nommée 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>
Premièrement: élaborez votre question. Les informations que vous avez fournies sont en quelque sorte sténographiques. Il n'y a aucune chance que l'on puisse saisir ce que vous faites. Incluez également un exemple de code supplémentaire.
La seule chose que je pourrais deviner, c'est que vous essayez de déclencher la méthode dans 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
Assurez-vous que la page est chargée dans l'iFrame. Toutes les références nécessaires aux colorbox js, jQuery js ne sont pas nécessaires.
Ensuite, l'appel de fermeture parent fonctionnera:
parent.$('.yourElement').colorbox.close();
juste ça
parent.$.colorbox.close()
semble fonctionner pour moi!
Je l'ai utilisé comme ça sans même faire référence à un JS dans le fichier chargé dans l'iframe.
<a href="javascript:parent.$.colorbox.close()">close</a>
cela seul dans un fichier HTML vierge semble fonctionner.
Je pense que le problème est que la colorbox appartient au parent, pas au DOM dans l'iframe.
Je suppose que vous devrez appeler parent. [Façon d'obtenir l'élément ou l'objet $ .fn] .colorbox.close () ou vous devrez ajouter une fonction au document parent et appeler parent.myCloseFunction ()
Il existe en fait une solution simple que j'utilise.
j'ai mis ça <a id="btnDone" href="#">here</a>
à l'intérieur du code ou vous pouvez utiliser l'identifiant de votre bouton d'envoi et
$(document).ready(function () {
$("#btnDone").click(function () {
window.parent.location = "../siparisler/listele.aspx"
});
}
de cette façon, vous pouvez rediriger la page parent. et colorbox se ferme automatiquement. si vous n'avez pas besoin de redirection, mettez simplement "#" pour window.parent.location
J'ai juste essayé de fermer colorbox depuis l'iframe mais je n'ai pas pu le faire fonctionner. J'ai utilisé $ ('# closebox'). Colorbox.close () et sans aucune chance.
Je n'ai pas réussi à fermer la Colorbox avec les solutions suggérées. Je reçois un parent indéfini ... Alors ..
J'ai trouvé adopté une approche différente:
Document d'accueil: (iframe: false) cela ouvrira la ajax_page dans DIV dans le même document
$(document).ready(function(){
$("#modalwindow").colorbox({
width:"800px",
height:"510px",
iframe:false,
href:"../ajax_page.php",
});
});
et dans la ajax_page
$('#modalwindow').colorbox.close();
J'espère que cela t'aides