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

jQuery Discussion :

jQuery Fermer fancybox depuis son contenu


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Par défaut jQuery Fermer fancybox depuis son contenu
    Bonjour, je suis actuellement en galère :

    Sur ma page principale j'ai un lien qui me permet d'ouvrir un formulaire dans une fancy box (ce n'est pas un iframe mais juste un div qui contient le formulaire). je valide mon formulaire en ajax, et lorsque c'est bon je voudrais que ma fancybox se ferme toute seule comme une grande, mais elle veut pas...

    Voila mon code une fois que mon formulaire est validé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    success:function(msg){
    					if(msg=="OK"){
    						parent.jQuery.fn.fancybox.close();
    					}
    				}
    j'ai également essayé :
    - parent.$.fancybox.close()
    - $.fancybox.close()
    mais rien n'y fait firebug me sort toujours cette foutu erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    parent.jQuery.fn.fancybox is undefined
    http://xxxx.com/js/jquery.js
    Line 41
    Quelqu'un à t'il une idée? La je sèche donc si vous avez une idée...
    merci d'avance

    PS: si je met un alert à la place de mon fancybox.close() le alert s'affiche bien...

  2. #2
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    As tu essayé quelque chose du style
    Apparement oui Quelle est l'erreur dans ce cas? Est-ce que tu peux poster en attachement ta page complete?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Par défaut
    L'erreur est la même dans tous les cas...

    Il y à prés de 700 lignes de codes pour cette page donc je vais te mettre que ce que (je pense) il est utile de voir, tu me dit si il manque quelquechose ...

    1. La page principale :
    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
    16
    17
    <script type = "text/javascript">
    $(document).ready(function() {
    		// FancyBox
    		fb = $("a.lienConfig").fancybox();
    [...]
    }
    </script>
     
    foreach($prog->getPartenaires() as $part){
    				echo '<tr class="'.$prog->getClass($part['dateFin']).'">
    					<td class="avatar"><img alt="logo non disponible" src="'.($part['logo']!='' ? WWWROOT.'/upload/logos/'.$part['logo'] : WWWROOT.'/css/'.ID_UTIL.'/imgCommun/noPics.png').'"</td>
    					<td>'.$part['prenom'].' '.$part['nom'].'</td>
    					<td>'.($part['dateDeb']!='' ? dateTimeFr($part['dateDeb']) : "Aucun mandat").'</td>
    					<td>'.($part['dateDeb']!='' ? dateTimeFr($part['dateFin']) : "Aucun mandat").'</td>
    					<td><a href="'.WWWROOT.'/box/configMandat.php?idUser='.$part['id'].'&idProjet='.$prog->get('id').'" alt="Cliquez ici pour modifier les condition du mandat avec ce partenaire" class="lienConfig">Configurer</a></td>
    				</tr>';
    			}
    2. la page contenue dans la fancybox :
    La fonction sub est appellé sur onsubmit du formulaire de cette page
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    function sub(){
    		$("p#msgErreur,#valider").hide(500);
    		$("#patientez").show(500);
    		initValide = $("#valider").val();
    		$("#valider").val("Patientez ...");		
    		$("#tauxCom").val($("#tauxCom").val().replace(',','.'));
    		var erreur = false;
    		if(!$("#dateDeb").val().match(/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/)){
    			$("#dateDeb").addClass("error");
    			$("#dateDeb").click(function(){$("#dateDeb").removeClass("error");})
    			erreur=true;
    		}
    		if(!$("#dateFin").val().match(/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/)){
    			$("#dateFin").addClass("error");
    			$("#dateFin").click(function(){$("#dateFin").removeClass("error");})
    			erreur=true;
    		}
    		if(!$("#tauxCom").val().match(/^[0-9]{1,3}\.?[0-9]{0,2}$/) ||*$("#tauxCom").val()>100){
    			$("#tauxCom").addClass("error");
    			$("#tauxCom").click(function(){$("#tauxCom").removeClass("error");})
    			erreur=true;
    		}
    		if(!erreur){
    			$.ajax({
    				type: "POST",
    				url:  "<?php echo WWWROOT; ?>/ajax/saveMandat.php",
    				data: "idUser=<?php echo $m->get('idUser');?>&idProgramme=<?php echo $m->get('idProgramme');?>&dateDeb="+$("#dateDeb").val()+"&dateFin="+$("#dateFin").val()+"&tauxCom="+$("#tauxCom").val()+"&isTTC="+$("#isTTC").val(),
    				success:function(msg){
    					if(msg=="OK"){
    						parent.jQuery.fn.fancybox.close(); // <== Ici ça ne marche pas
    					}
    				}
    			});
    		}
    		else{
    			$("p#msgErreur,#valider").show(500);
    			$("#patientez").hide(500);
    		}
    	}
    Merci

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    success:function(msg){
    	alert(msg); // debug, résultat ?
     
    	if(msg=="OK"){
    		// pas jQuery mais $ vu le contexte de votre code
    		parent.$.fn.fancybox.close();
    	}
    }

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Par défaut
    Comme je l'est dit dans mon premier message, Le msg retourné est bon vus qu'un alert dans le if s'ouvre sans problème... et puis je n'aurais pas d'erreur dans firebug si cette ligne n'était pas appelée...

    Le problème ne viens donc pas de cette condition...

    Personne n'a jamais rencontrer ce problème?

    Merci

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 82
    Par défaut
    Bonjour, j'ai trouver d'où venait mon problème :
    dans le fichier qui était inclus dans ma fancybox refait les inclusions de tous mes fichiers javascript et css, mais comme ce n'est pas un iframe il ne fallait pas que je réincluse ces fichiers.

    Merci a tous ceux qui m'on apporté leur aide dans la résolution de ce problème...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/11/2014, 18h21
  2. Réponses: 2
    Dernier message: 18/01/2012, 19h08
  3. Réponses: 5
    Dernier message: 25/07/2011, 17h20
  4. [C#] Dossier et son contenu.
    Par GéniuS77 dans le forum Windows Forms
    Réponses: 13
    Dernier message: 12/10/2004, 11h05
  5. Comment copier un répertoire et son contenu ?
    Par yoghisan dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 20/06/2004, 17h40

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