Submitting forms help

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.

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. 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.

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

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/9/06, Manish S. [email protected] 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
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 S. 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.