[RESOLU] Validation d'un formulaire dans fenêtre modale - PHP/Jquery

xtense
Invité n'ayant pas de compte PHPfrance

16 mars 2012, 18:52

Bonjour à tous,

J'aimerais améliorer le système de publication de commentaires sur une image que j'ai développé pour ma communauté de créatifs, dans un style équivalent à l'actuelle fonctionnalité proposée par Facebook : quand on clique sur une image, elle s'ouvre dans une fenêtre modale, et les commentaires relatifs s'affichent sur la droite avec la possibilité d'en ajouter un nouveau.

J'utilise actuellement le plugin Jquery "Facebox" (équivalent à d'autres box type Lightbox) pour afficher mes images et j'aimerais y ajouter ma brique de commentaires (afficher les commentaires existants et en ajouter). Problème : la validation de mon formulaire dans la fenêtre modale redirigera forcément vers une autre page (script d'insertion du commentaire dans la base) et il ne me sera pas possible de revenir vers la page contenant cette popin affichée... Je pense qu'il faudrait une sorte de validation transparente.

Comment faire pour qu'à la validation de mon formulaire présent dans la fenêtre modale celle-ci reste ouverte (sans changement de page), que le commentaire soit ajouté à ma base et que le contenu de ma fenêtre modale soit mis à jour.

J'espère que mes explications sont à peu près claires... :?
Merci pour vos pistes !

ViPHP
ViPHP | 2577 Messages

20 mars 2012, 12:10

La page de validation du commentaire peut très bien générer un javascript qui ferme la fenetre. Il est même possible si nécessaire de provoquer un rafraîchissement de la fenêtre parente.

xtense
Invité n'ayant pas de compte PHPfrance

21 mars 2012, 18:06

Merci pour ta réponse !
Par contre, je n'ai absolument aucune idée de la manière dont il faut s'y prendre... si tu as par hasard un article sous la main qui traite du sujet, je suis preneur !

ViPHP
ViPHP | 2577 Messages

21 mars 2012, 19:59

tu génère un truc comme ca :
<script>
window.close();
</script>

anonymous_2012
Invité n'ayant pas de compte PHPfrance

21 mai 2012, 11:44

Pour avoir rencontré le même problème... je suis passé par AJAX pour solutionner le problème.

Dans le formulaire, au lieu d'utiliser un input "submit", je suis passé par un input "button", et sur click(), je récupère les données du formulaire (avec les tests habituels de vérification de remplissage côté navigateur) et je balance le tout à une page de traitement via un $.post ou $.get ou $.ajax (suivant le cas). Dans la page de traitement (qui ne fait que s'amuser avec les données et les stocker en base de données) à la fin soit je renvoi un message à afficher, soit rien. L'intérêt de l'appel AJAX, ce que l'on peut définir quoi faire sur un success(), et là soit j'affiche dans la fenêtre modal le message généré par mon script de traitement, soit ben je fais ce que je veux (fermer la fenêtre par exemple, recharger, ...)