16 Oct
duccio

duccio il 16 October 2007 parla di Rails Snippet

Form.serialize: serializzare due form in una chiamata Ajax

Avere più form nella stessa pagina non è un dramma e succede spesso, se però dovete inviare in ajax i dati di più form con il submit di uno soltanto dovete fare una piccola modifica.

E’ sufficiente modificare i parametri da inviare sull’onSubmit del form. Quando utilizzate il form_remote_for il codice html che viene renderizzato è questo:

    1 <form action="/my_controller/my_action" method="post" onsubmit="new Ajax.Request('/my_controller/my_action', {asynchronous:true, evalScripts:true, onComplete:function(request){addFormListener();}, parameters:Form.serialize(this)}); return false;">

Quello che a noi interessa è il parameters:Form.serialize(this), se lo modifichiamo possiamo passare alla funzione nel controllore i dati inseriti in più form:

    1 parameters:Form.serialize(this)+'&'Form.serialize($('id_altro_form'))

Chiaramente potete serializzare quanti form vi pare.

1 Commento a “Form.serialize: serializzare due form in una chiamata Ajax”

  1. LP il 25 October 2007 alle 15:26 dice:

    Molto utile. Mi sono innamorato di rails… :)

Scrivi un commento