How can i put a form tag with action = "post" within form tag with runat="server" -Does not work

Hi,

I have an asp.net 2.0 page (C#), and wihtin this page i have to put a form with a submit button that will open a new window and send some data there with hidden fields. Simplified, the HTML looks like this.
But it doesn't work, the site mentioned in form2 action is never openend. It does work when put form2 after the closing tag of form1, but this is not an option as the part of form2 is integrated in the much more complicated page.

Any idea what i can do to make this work?

Thanks,

Dready


<body>
    <form id="Form1" runat="server">
    <table><tr><td>
        <form id="form2" name="form2" method="post" action="https://www.somesite.com/validation.php"
            target="_blank">
            <input type="hidden" name="_charset_" />
            <input name="cust_id" type="hidden" value="X8DCC048644441C1B9A244440D8357AC818D" />
            <input type="submit" id="btnGo" name="btnGo" value="test" />
        </form>
     </td></tr></table>
    </form>
</body>

Open in new window

LVL 11
dreadyAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

MickelAnderssonCommented:
ASP.Net only allow one form-tag per page.

You will therefore have to find another solution to post to an existing .php-page.


Hope it helps!
0
GuitarRichCommented:
Not quite right - asp.net only allows one runat="server" form on the page.
If your form doesn't require any asp.net controls inside it - try moving the form you want to post outside the server side asp.net form tags like this. You don't have to put all your code inside the generated form element - only the asp.net controls need to go there.

<body>
    <form id="Form1" runat="server">
    </form>
    <table><tr><td>
        <form id="form2" name="form2" method="post" action="https://www.somesite.com/validation.php"
            target="_blank">
            <input type="hidden" name="_charset_" />
            <input name="cust_id" type="hidden" value="X8DCC048644441C1B9A244440D8357AC818D" />
            <input type="submit" id="btnGo" name="btnGo" value="test" />
        </form>
     </td></tr></table>
</body>

Open in new window

0
dreadyAuthor Commented:
Hi,

Thanks for your replies.
@GuitarRich: I know, i tried that for the simple example i posted here, and that works. Unfortunately, in the real page, there are ASP.net controls AND asp.net UserControls all around the place where i have to put this...

Does this mean it's not possible to use the form method="post"? Or is there another way to get the same behaviour, f.e. in do something in the code behind onclick handler for the button? I just wouldnt know how to use the input type="hidden" fields in that case .

Any more ideas?

0
Become a Certified Penetration Testing Engineer

This CPTE Certified Penetration Testing Engineer course covers everything you need to know about becoming a Certified Penetration Testing Engineer. Career Path: Professional roles include Ethical Hackers, Security Consultants, System Administrators, and Chief Security Officers.

GuitarRichCommented:
Does that form have asp.net controls in it? You could stick the html for the form outside the server side form and then use CSS to position it on the page?
0
GuitarRichCommented:
There are also some idea's on how to make nested forms work here http://www.cubiczone.com/Articles/tabid/65/EntryID/21/Default.aspx
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
GuitarRichCommented:
one more idea - would using javascript to sumit your form work? http://www.javascript-coder.com/javascript-form/javascript-form-submit.phtml
0
dreadyAuthor Commented:
Hey Guitarrich,

Thanks so much for all your suggestions. I first thought about using the iframe solution, but i also have to dynamically set some values in my gadget. But in the end setting the form action dynamically in the click handler (onclick="this.form.action='somesite.com' ) works best and easiest. Only for people without Javascript it wont, but thats ok with me...

Thanks, points well deserved.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.