tags:

views:

32

answers:

2

Hi everybody, I thought this would be quite simple but the documentation doesn't point me to any solution. I am working on an editor. While i am using $.ajax for saving multiple forms at once i would like to perform the same post but with a complete page reload. how can i achieve that?

Trigger Preview BTN -> Collect Forms -> Regular post to preview.php -> Render preview.php

Any ideas?

Thank you very much!

+1  A: 

The simplest way is to just use a normal <form> and a redirect from the server-side. Just use one <form> with all your inputs, no need for JavaScript at all.


If you need to move the elements in preparation for submission (since <form> elements can't be validly nested) then on the jQuery side all you need is to copy the elements into your single <form> (they should have unique names unless you want overlap), like this:

<form id="bigForm" method="post"></form>

Then in jQuery when you want to submit:

$("form :input").appendTo("#bigForm");
$("#bigForm").submit();
Nick Craver
hehe yes i shouldnt use js if its not necessary... Didnt see the most simplest solution $('form').submit()... So is it true that i need to append "action=preview.php" to each form and $('form').submit() sends them all at once to preview.php... Will give that a try... Thank you!
Bosh
@Bosh - That won't work for submitting *multiple* forms, rather structuring your page to only use one form initially :) For the others that you're submitting via AJAX you could have `<div>` containers for example, and just use `$("#thatDiv :input").serialize()` to get their data.
Nick Craver
@Nick... Ok that's what i am already doing on save. So what i am trying now is to append the serialized data to a one-field form and perform a regular submit for the preview... Thank you! Yes i really would have liked to structure the document to hold one form only but in that case i prefer to stick to multiple forms. ;-) thanks!
Bosh
A: 

But if you still want to control this in Javascript, then you can simply reload page after $.post request is done or use $('form').submit(); so initiate normal submiting.

Māris Kiseļovs
thank you... but reloading the page afterwards again doesn't look very efficient.
Bosh