I cant seem to figure this problem out and i was hoping someone could help me out. I have a page with a list of forms. I would like the user to be able to submit each form individually, or submit them all at once, to a different action (bascially, one that will do batch processing of all the forms). Is this possble? Please help. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://wrath.rubyonrails.org/pipermail/rails/attachments/20060409/737c94b7/attachment.html
I think you can only submit one form at a time. But there is a solution. Make your whole page one big form that submits to a particular action. For each "sub-form" make a button with a unique name. <button name="little_form_1"> tags or <input type=button name="little_form_1>. You don''t use submit tags for this. For the entire form make a button with a unique name. <button name="all_forms"> In the action that will process the form you will make a if else statement if params[:all_forms] elseif params[:little_form_1] end The above syntax may be a bit suspect but I''ve used something like this before. I think it is nice an clean. I''ve found that it is best if forms submit their data back to the same action that created the form. This makes life easier. It also helps a lot with validation and redirects. Peter On 4/8/06, Manish Shah <mnshah@gmail.com> wrote:> I cant seem to figure this problem out and i was hoping someone could help > me out. > > I have a page with a list of forms. I would like the user to be able to > submit each form individually, or submit them all at once, to a different > action (bascially, one that will do batch processing of all the forms). > > Is this possble? Please help. > > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/rails > > >
i had a different idea that i''m trying to get right. Each sub form is using form_remote_tag to make an ajax call onsubmit. What i did was create a javascript function that loops through all the forms and calls document.forms[i].submit() However, its not acting as if the person clicked the submit button for each form. I have :loading and :complete attributes set for each subform that shows the user that the form was submitted and the server result, i''d like each of these to be triggered when calling document.forms[i].submit() which i thought it would since they are triggered with the onsubmit event. Am i missing something? Please help. Thanks in advance. On 4/8/06, Peter Michaux <petermichaux@gmail.com> wrote:> > I think you can only submit one form at a time. But there is a solution. > > Make your whole page one big form that submits to a particular action. > > For each "sub-form" make a button with a unique name. <button > name="little_form_1"> tags or <input type=button name="little_form_1>. > You don''t use submit tags for this. > > For the entire form make a button with a unique name. <button > name="all_forms"> > > In the action that will process the form you will make a if else statement > > if params[:all_forms] > > elseif params[:little_form_1] > > end > > The above syntax may be a bit suspect but I''ve used something like > this before. I think it is nice an clean. I''ve found that it is best > if forms submit their data back to the same action that created the > form. This makes life easier. It also helps a lot with validation and > redirects. > > Peter > > > On 4/8/06, Manish Shah <mnshah@gmail.com> wrote: > > I cant seem to figure this problem out and i was hoping someone could > help > > me out. > > > > I have a page with a list of forms. I would like the user to be able to > > submit each form individually, or submit them all at once, to a > different > > action (bascially, one that will do batch processing of all the forms). > > > > Is this possble? Please help. > > > > _______________________________________________ > > Rails mailing list > > Rails@lists.rubyonrails.org > > http://lists.rubyonrails.org/mailman/listinfo/rails > > > > > > > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/rails >-------------- next part -------------- An HTML attachment was scrubbed... URL: http://wrath.rubyonrails.org/pipermail/rails/attachments/20060409/e0d152ae/attachment.html
On 4/9/06, Manish Shah <mnshah@gmail.com> wrote:> i had a different idea that i''m trying to get right. Each sub form is using > form_remote_tag to make an ajax call onsubmit. What i did was create a > javascript function that loops through all the forms and calls > document.forms [i].submit()That is an interesting idea but I''d stay away from it since a simpler, bug-free solution exists. JavaScript is hard work.>From what you''ve written it is possible that you have nested <form>tags? Is this true?> However, its not acting as if the person clicked the submit button for each > form. I have :loading and :complete attributes set for each subform that > shows the user that the form was submitted and the server result, i''d like > each of these to be triggered when calling document.forms[i].submit() which > i thought it would since they are triggered with the onsubmit event. >> document.forms[i].submit()Instead of this, what you really want to do is simulate a click event on each submit button. Or something. Or you want to call with JavaScript the same function you have in the onclick attribute of each form submit. Things are getting complicated! Good luck. Peter
Manish Shah wrote:> i had a different idea that i''m trying to get right. Each sub form is > using form_remote_tag to make an ajax call onsubmit. What i did was > create a javascript function that loops through all the forms and calls > document.forms [i].submit()If you''re going to post using AJAX then perhaps you can use submit_to_remote and its :submit option. This allows you to specify a div element that encloses the named elements that you want posted for each submit button. No need for any forms. -- We develop, watch us RoR, in numbers too big to ignore.