4 votes

Boîte contextuelle Ajax utilisant Ruby on Rails

C'est une question assez basique mais je n'arrive pas à trouver une bonne réponse à cela. J'ai une page dans mon application Rails où il y a de nombreux objets qui peuvent être 'flaggés'. En cliquant sur le bouton de flag, une petite boîte avec une confirmation, un petit formulaire, etc. devrait s'afficher. Le problème est que je ne parviens pas à comprendre comment faire cela en utilisant des modèles RJS.

J'ai utilisé page.insert_html mais cela nécessite un ID. Pour que cela fonctionne, j'ai dû attribuer un ID unique à chaque élément pouvant être flaggé. Cela ne semble pas très propre et me laisse toujours perplexe quant à la façon de m'assurer qu'un seul formulaire peut être affiché et que la boîte disparaît lors de la validation. Y a-t-il une solution plus simple à ce problème ? Je veux essentiellement créer quelque chose de similaire aux boîtes de flag qui apparaissent sur SO pour un flag. Désolé, je suis relativement nouveau dans les modèles RJS. Merci.

4voto

nitecoder Points 4561

Vous pourriez le faire avec le jquery facebox. Ce genre de chose est mieux fait dans du javascript non intrusif, c'est là où tout le monde se dirige ces jours-ci, c'est beaucoup plus propre. Vous pouvez attacher le rel facebox à vos liens, puis lorsque vous cliquez dessus, cela peut ouvrir le formulaire dans une fenêtre popup.

Ensuite, dans votre fenêtre popup, vous pouvez faire votre formulaire et rediriger ou autre. L'utilisateur ne pourra cliquer qu'une fois car lorsque la fenêtre popup s'ouvre, un overlay est placé sur la page, donc cliquer en dehors n'a aucun effet ou ferme le formulaire (je pense que vous choisissez dans la configuration).

Ça semble être la voie à suivre.

2voto

revgum Points 508

JQuery UI a également un widget Dialog qui fonctionne très bien pour ce genre de chose. C'est un widget sympa et vous pouvez personnaliser votre bibliothèque jQuery UI pour inclure (ou exclure si vous voulez un javascript plus mince passé au navigateur) d'autres widgets pratiques également (accordéon, barre de progression, etc)

Découvrez les exemples de Dialog sur jQuery Dialog

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