Avatar billede bernhof Nybegynder
24. marts 2007 - 16:18 Der er 12 kommentarer og
2 løsninger

Submit form

Jeg står med den udfordring, at skulle submitte en alm. form via POST på en content-page, og jeg kan simpelthen ikke få det til at virke.

Koden ser således ud:


<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false"
  CodeFile="MyForm.aspx.vb" Inherits="MyForm" Title="MyForm" %>

<asp:Content ID="Content1" ContentPlaceHolderID="cphMain" runat="Server">
  <form name="frmData" id="frmData" target="_blank" action="https://www.sikkerside.dk/form.php" method="post">

    <input type="hidden" id="felt1" value="værdi1" />
    <input type="hidden" id="felt2" value="værdi2" />
    <input id="btnSubmit" type="submit" value="Submit" />

  </form>
</asp:Content>


Men da der allerede eksisterer ASP.NETs egen form på min master page, er det den form, som bliver submitted, når jeg klikker Submit, og ikke ovenstående.

Jeg SKAL overføre form data via POST fra min hjemmeside til en ekstern side, og jeg kan ikke komme på andre måder at gøre det på.
Avatar billede snepnet Nybegynder
24. marts 2007 - 17:47 #1
Hvad hvis du gør sådan her:
<input id="btnSubmit" type="button" value="Submit" onclick="frmData.submit();" />
Mvh
Avatar billede bernhof Nybegynder
25. marts 2007 - 14:43 #2
Så får jeg desværre bare javascript fejlen "Object doesn't support this property or method."
Avatar billede bernhof Nybegynder
25. marts 2007 - 14:46 #3
Har også prøvet med

document.frmData.submit(); og
document.aspnetForm.frmData.submit();

Men de resulterer alle bare i en javascript fejl.
Avatar billede kalp Novice
25. marts 2007 - 15:07 #4
prøv bare at skrive

this.form.submit();

eller

this.frmData.submit();
Avatar billede snepnet Nybegynder
25. marts 2007 - 16:10 #5
underligt ... jeg får da ikke en scriptfejl her.
Mvh
Avatar billede bernhof Nybegynder
26. marts 2007 - 14:35 #6
kalp > Tak for dine forslag. this.form.submit(); giver ikke fejl, men ser ud til blot at submitte ASP.NETs runat=server form. this.frmData.submit(); giver fejlen 'this.frmData is null or not an object'

snepnet > Har du prøvet efter i samme scenarie? Dvs. på en web form, som er en content-page? Jeg har prøvet både i Firefox og Internet Explorer 7, og det virker i ingen af dem.
Avatar billede kalp Novice
26. marts 2007 - 15:02 #7
nu jeg tænker mig om så kan man ikke have en form i en form..

derfor virker det ikke..

så skal du fjerne ASP.NETS form
Avatar billede bernhof Nybegynder
26. marts 2007 - 15:47 #8
Lige præcis. Det var også min første tanke, men eftersom der er tale om en content-page, kan jeg ikke fjerne ASP.NETs form, da denne befinder sig på min master page, og håbede på at der var en anden måde at gribe det på. Evt. programmatisk?
Avatar billede snepnet Nybegynder
26. marts 2007 - 17:51 #9
Well... du kan lægge formen på dine contentpages, men det er jo lidt træls at skulle lave om på det.

Men du kan godt lægge en contentplaceholder uden for din form:
<form id="form1" runat="server">
    <asp:contentplaceholder id="cph" runat="server">
    </asp:contentplaceholder>
</form>
<asp:contentplaceholder id="cphOutOfForm" runat="server">
</asp:contentplaceholder>   

Og så på din contentpage:
<asp:Content ID="Content1" ContentPlaceHolderID="cphOutOfForm" Runat="Server">
  <form name="frmData" id="frmData" target="_blank" action="https://www.sikkerside.dk/form.php" method="post">
    <input type="hidden" id="felt1" value="værdi1" />
    <input type="hidden" id="felt2" value="værdi2" />
    <input id="btnSubmit" type="button" value="Submit" onclick="frmData.submit();" />
  </form>
</asp:Content>

Ellers er det måske det er nemmeste for dig at lave dit post programmatisk (altså din post til den respektive server) vha. HttpWebRequest klassen.

Mvh
Avatar billede bernhof Nybegynder
26. marts 2007 - 19:48 #10
Tak for input! Dit første forslag, omend besværligt kan løse mit problem.

At placere en contentplaceholder uden for runat=server formen giver imidlertid større layoutmæssige komplikationer.

At lave post programmatisk vha. HttpWebRequest klassen er desværre heller ikke en brugbar løsning, da siden, som jeg poster til, også skal vises for brugeren. Eller er det mig der overser noget?

Er det muligt programmatisk at redirecte brugeren til siden sammen med de nødvendige post-data?
Avatar billede snepnet Nybegynder
26. marts 2007 - 22:55 #11
Hvis det er en side på samme server, kan du bruge
Server.Transfer("dinurl", True)
Mvh
Avatar billede bernhof Nybegynder
27. marts 2007 - 22:26 #12
Ok, det er det jo desværre ikke i mit tilfælde.

Men I skal have tak for hjælpen under alle omstændigheder. Lægger I et svar?
Avatar billede kalp Novice
27. marts 2007 - 22:50 #13
hvis blot det er til admin eller lignende kan du lave en iframe og lade den åbne deri.. så kan du godt submitte i hvertfald:)
Avatar billede snepnet Nybegynder
29. marts 2007 - 14:07 #14
Også et svar her.
Mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester