Mon petit conseil : bubbling.
Mettons que tu sois dans cette configuration :
<div class="class_that_means_its_a_popup">
<form>
...
</form>
</div>
Et que, comme moi, tu préfère attribuer la méthode pour transformer ça en
formulaire AJAX quel que soit le formulaire, quelle que soit l'action, au
chargement initial de la page, et sans t'inquiéter de répéter l'attribution
de l'action AJAX à chaque fois que tu charge le petit bout de formulaire en
AJAX justement.
Oh, et aussi, je n'aime pas mettre un paramètre "ajax=true" dans mes urls
pour avoir le formulaire, ça fait sâle.
Ca semble impossible ?
document.body.observe('submit', function(event) {
if (event.findElement('.class_that_means_its_a_popup) {
event.stop();
var the_actual_form = event.findElement('form');
var the_action = form.readAttribute('action');
var the_parameters = form.serialize();
new Ajax.Request(the_action, {
method: 'post',
onSuccess: function(transport) {
// whatever you like here
}
});
return false;
}
});
Magic.
Michel Belleville
2009/7/13 Adrien Coquio <[email protected]>
>
> Bonjour,
> J'utilise le Prototype Window Class (
> http://prototype-window.xilinus.com/index.html
> ), qui marche très bien d'ailleurs, pour afficher une "fausse" popup
> dans mes pages.
> Mon but est le suivant : j'ai un formulaire personne avec à
> l'intérieur un select qui permet de choisir une civilité ( en
> référence à la table civilites ) et je veux que l'utilisateur puisse
> créer une nouvelle civilité en restant sur cette page et, si possible,
> qu'elle soit automatiquement sélectionné dans le select mis à jour.
> Grace à Window Class, j'ai ajouté un lien `nouvelle civilité` qui
> permet d'afficher la page http://XXX/civilites/new (il utilise un
> iframe je crois) ce qui permet d'ajouter une civilité dans la table
> sans problème mais je voudrai maintenant que lorsque l'utilisateur
> clique sur `enregistrer la civilité` la popup Window Class se ferme
> automatiquement (au lieu de renvoyer l'utilisateur vers la page
> classique qui suit le formulaire nouvelle civilité) et que mon select
> sois mis à jour pour sélectionner la nouvelle civilité créer.
> Je ne sais pas du tout comment faire ca, a priori je pensai ajouter un
> parametre popup=true quand on appelle le form de nouvelle civilité
> depuis une popup puis modifier l'action create dans mon controlleur
> civilité pour exécuter un script qui ferait ca après avoir enregistré
> la civilité mais... je ne sais pas comment modifier l'action create
> pour obtenir ca ?
> Sinon je peux aussi remplacer le form_for par un remote_form_for
> quand le paramètre popup=true et gérer ca en ajax, mais je ne sais pas
> non plus comment faire et je trouve ca plus simple si je peux garder
> mes formulaires identiques qu'il soit dans une popup ou pas.
> Une dernière solution serait de ne pas charger une URL dans la popup
> mais plutot le contenu d'un div mais cela complique un peu, je dois
> gérer le formulaire en ajax, et ne résous pas mon problème de comment
> mettre le select à jour.
> J'aimerai vos conseils pour savoir comment réaliser ca et également
> vos avis sur quelle voie est la meilleure ?
> Merci à tous
>
> Adrien
> >
>
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse
[email protected]
-~----------~----~----~----~------~----~------~--~---