11549 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je ne sais pas si c'est le bon forum mais je test, supprimer moi si je suis pas au bon endroit Smiley smile J'explique donc mon problème :
J'ai un formulaire dans une lighbox.
Quand je clique sur le bouton valider, je télécharge un document et la lighbox ce ferme. J'ai fait le formulaire qui me permet de lancer le dl, la partie qui ferme la lightbox, mais c'est soit je ferme la lightbox soit je lance le dl mais jamais les deux en mm temps ... vous auriez une idée de comment faire ?

Merci

Frink
Hello.

Déjà, un formulaire dans une modale, c'est à 80% du temps une mauvaise idée.

Sinon, sans plus d'informations, à part te dire qu'il faut que tu fermes ta modale sur le onsubmit du formulaire, difficile de t'aider.
Oui j'ai essayer de faire :

<form method="post" method="construction.php" onsubmit="$.fancybox.close()"></form>


Mais il ferme ma lightbox avant même de lancer le traitement php Smiley decu

le but du formulaire étant de remplir les champs du formulaire puis au clic sur le bouton envoyer, la fenêtre de téléchargement du navigateur s'affiche et la lightbox se ferme.

Merci
Dans ton cas il faut que ton traitement se fasse en AJAX, si tu le fais sans, alors, lors du submit de ton formulaire il renverra la page indiqué dans l'attribut action ou la page courante si action est vide, si tu utilises jQuery regarde du côté de $.post() Smiley cligne .

D'ailleurs ton code est faux, tu as deux fois l'attribut method alors que tu devrais avoir ceci :
<form method="post" action="construction.php" onsubmit="$.fancybox.close()"></form>


Par la suite avec jQuery tu fais :


$.post($('form.class-form').attr('href'), { name: $('.input').val() }, function(response){
    //Si il n'y a pas d'erreur alors on ferme la modal
    //  reponse est un objet json (d'ou le dernier paramètre de $.post) donc côté PHP j'ai un  truc qui ressemble à $json['erreur'] = 0; echo json_encode($json);
    if(!response.erreur){
        $('.modal').hide() // ou remove pour le supprimer du DOM
    }
}, 'json');
// J'ai mis JSON comme type de  données car je trouve que récupérer en JSON c'est plus simple après tu es libre de faire sans


A toi de faire le traitement côté PHP et selon le cas à indiquer le la clé erreur du tableau $json à true ou false, erreur est un nom arbitraire bien entendu.

J'ai dis que les grandes lignes, je te laisse chercher de ton côté pour voir ça un peu plus en détail Smiley cligne .
Modifié par R-transat (13 Jul 2012 - 10:15)