Verschachtelte Formulare?!?
Darklord
- asp.net
Hallo.
Ich habe folgendes Problem: Ich will erstens einen Button erstellen der dann selbst daten versendet, geht auch ganz einfach mit hidden, hab ich auch hinbekommen. Zweitens will ich allerdings noch Checkboxen haben an einer anderen Stelle innerhalb derselben Tabelle. Und da Beginnt das Problem. Folgender Code zum veranschaulichen:
response.write("<TABLE border=""0"" cellpadding=""3"" cellspacing=""3"" width=""100%""><tr><td id=""ListTableBackground""><TABLE cellpadding=""1"" cellspacing=""3"" border=""0"" width=""100%"">")
response.write("<TR><TH id=""ListTableHead"" width=""2,5%"">Auswahl</TH><TH id=""ListTableHead"" width=""25%"">Produkt</TH><TH id=""ListTableHead"" width=""20%"">Hersteller</TH><TH id=""ListTableHead"" align=""center"">Elektr. Details 1</TH><TH id=""ListTableHead"" align=""center"">Elektr. Details 2</TH></TR>")
response.write("<td><form action=""elektr_details_spezifisch3.asp"" name=""form1""></td>")
do while not rs.eof ' Solange Daten im Recordset baue Liste auf, erstelle und verbinde Links
set ID_Prod=rs("Prod_Id")
response.write("<TR id=""ListTableBackground"" align=""center""><TD><p>")
response.write("<input type=""checkbox"" name=""form1"" value="""& ID_Prod &""">")
'Neu
response.write("</p></TD><TD align=""left""><p>")
response.write(rs("Prod_Name"))
'Ende Neu
response.write("</p></TD><TD align=""left""><p>")
response.write(rs("Prod_Hersteller"))
'Hyperlink auf Betriebssystem-Seite mit Uebergabe der Produkt Parameter
response.write("</p></TD><TD align=""center"" onmouseover=""bgred(this);"" onmouseout=""bgnormal(this)""><p> ")
Response.Write("<form name=""Prod_Id"" method=""post"" action=""elektr_details_spezifisch.asp""><input type=""hidden"" name=""Prod_Id"" value="""& ID_Prod &"""><input type=""image"" src=""images/detailviewbutton2.gif"" title=""Detail"" value="""& ID_Prod &""" name=""Prod_ID""></form>")
'Hyperlink auf Detailsicht-Seite mit Uebergabe der Produkt Parameter
response.write("</p></TD><TD align=""center"" onmouseover=""bgred(this);"" onmouseout=""bgnormal(this)""><p>")
Response.Write("<form name=""Prod_Id"" method=""post"" action=""elektr_details_spezifisch2.asp""><input type=""hidden"" name=""Prod_Id"" value="""& ID_Prod &"""><input type=""image"" src=""images/detailviewbutton2.gif"" title=""Detail"" value="""& ID_Prod &""" name=""Prod_ID""></form>")
response.write("</a></p></TD></TR>")
rs.movenext
if rs.eof = false then 'Wenn noch was da
response.write("<TR id=""ListTableHighlightRow"" align=""center""><TD><p>")
response.write("<input type=""checkbox"" name=""form1"" value="""& ID_Prod &""">")
'Neu
response.write("</p></TD><TD align=""left""><p>")
response.write(rs("Prod_Name"))
'Ende Neu
response.write("</p></TD><TD align=""left""><p>")
response.write(rs("Prod_Hersteller"))
'Hyperlink auf Betriebssystem-Seite
response.write("</p></TD><TD align=""center"" onmouseover=""bgred(this);"" onmouseout=""bgnormal(this)""><p> ")
Response.Write("<form name=""Prod_Id"" method=""post"" action=""elektr_details_spezifisch.asp""><input type=""hidden"" name=""Prod_Id"" value="""& ID_Prod &"""><input type=""image"" src=""images/detailviewbutton2.gif"" title=""Detail"" value="""& ID_Prod &""" name=""Prod_ID""></form>")
'Hyperlink auf Detailsicht-Seite
response.write("</p></TD><TD align=""center"" onmouseover=""bgred(this);"" onmouseout=""bgnormal(this)""><p>")
Response.Write("<form name=""Prod_Id"" method=""post"" action=""elektr_details_spezifisch2.asp""><input type=""hidden"" name=""Prod_Id"" value="""& ID_Prod &"""><input type=""image"" src=""images/detailviewbutton2.gif"" title=""Detail"" value="""& ID_Prod &""" name=""Prod_ID""></form>")
response.write("</p></TD></TR>") rs.movenext
end if
loop
response.write("</TABLE><TABLE border=""0"" cellpadding=""0"" cellspacing=""0"" width=""100%""><tr>")
response.write("<td> <img src=""images/pfeil.jpg""> <b>Erstelle Report für selektierte Produkte</b> <input type=""submit"" value=""Start Report"" name=""form1""></td></tr></TABLE>")
response.write("</form>")
und das ganze "gekürzt":
<table>
<td><form></td>
<td><form></form></td>
<td></form>
</table>
sozusagen. Das Problem besteht im äußeren form tag, wenn man auf den submit button klickt tut sich überhaupt nichts. Deshalb meine Frage: Ist das überhaupt möglich Formulare zu verschachteln? Wenn nein: Gibt es noch eine andere Möglichkeit die buttons aufzurufen die die hidden daten verschicken?!? (das wär meiner meinung nach die einfachste lösung wenns da was formloses gäbe ;) )
Hi,
Folgender Code zum veranschaulichen:
serverseitiger Code ist zur Veranschaulichung eines clientseitigen Problems gänzlich ungeeignet.
und das ganze "gekürzt":
Dies ist in etwa das, was interessiert. Prüfe einen derartigen Code mal mit dem Validator - Du wirst sehen, dass er nicht den geringsten Sinn ergibt. Egal, wie fehlertolerant ein System ist.
<td><form></td>
Innerhalb des selben <td> muss das <form> geschlossen werden. Zudem ist der Start-Tag von <tr> nicht optional.
<td><form></form></td>
Zur Schachtelung von Formularen siehe Archiv.
<td></form>
Dies bezieht sich auf ein nicht geöffnetes <form>.
Deshalb meine Frage: Ist das überhaupt möglich Formulare zu verschachteln?
Diese Frage beantworte Dir bitte anhand des Archivs.
Gibt es noch eine andere Möglichkeit die buttons aufzurufen die die hidden daten verschicken?!?
Pro Formular eine Action. Was serverseitig mit den Daten passiert, unterliegt Deiner völlig freien Handhabe.
Cheatah
also so sieht das ganze jetzt genau aus:
<form>
<table>
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
<tr>
<td><input type="checkbox" name="form1" value="10"></td>
<td></td>
<td><form>(für button)</form>
<td><form>(für button)</form>
</tr>
</table>
<table>
<tr>
<td><input type="submit" value="Start Report"></td>
</tr>
</table>
</form>
.
.
.
<form>
<table>
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
<tr>
<td><input type="checkbox" name="form1" value="10"></td>
<td></td>
<td><form>(für button)</form>
<td><form>(für button)</form>
</tr>
</table>
<table>
<tr>
<td><input type="submit" value="Start Report"></td>
</tr>
</table>
</form>
.
.
.
Hi,
also so sieht das ganze jetzt genau aus:
hast Du zur Schachtelung von Formularen im Archiv recherchiert? Hast Du einen solchen Code in den Validator geschickt?
Cheatah
Hi,
also so sieht das ganze jetzt genau aus:
hast Du zur Schachtelung von Formularen im Archiv recherchiert?
ja, hab ich, leider ist html zu doof verschachtelte formulare zu erkennen... gibts vllt ne andere möglichkeit für nen button der was ohne formular übergibt?
hab mir grad überlegt wie es noch gehen könnte. Ist es möglich die form method=get als hyperlink zu definieren? weil die daten lassen sich ja über ASP dynamisch eintragen und dadurch dann evtl den form method nur "simulieren" also als link auszugeben den sich das zielformular seinerseits wieder weiterverarbeitet.
Hi,
Ist es möglich die form method=get als hyperlink zu definieren?
ein Formular definiert einen (variablen) Request der Methode GET oder POST. _Jeder_ andere Request aus Deinem Browser ist per definitionem ein Request der Methode GET. Auch ein durch einen Link definierter.
Cheatah
Hi,
leider ist html zu doof verschachtelte formulare zu erkennen...
etwas derartiges zu _erlauben_ wäre verdammt doof. Überlege Dir mal die Konsequenzen.
gibts vllt ne andere möglichkeit für nen button der was ohne formular übergibt?
Wieso glaubst Du, diese fehlende Übergabe sei notwendig?
Cheatah