2 Formulare auf einer Seite / Absenden des "richtigen" Formulars
Tomcat
- programmiertechnik
Hallo Forumgeminde,
folgende Situation:
Ich habe eine ASP Seite. In dieser Seite befinden sich zwei Forms(?)
<form Method="POST" action="../eingabe/artikel_eingabe_update.asp" name="Artikelfrei">
.
und
.
<form method="POST" action="../Loeschen/artikel_loesch_form.asp" name="Artikelvorhanden">
die durch eine If..Else Anweisung angesprochen werden.
Beispiel: "If 1 = 1 then [Code mit Form "Artikelfrei" und Tabellen etc] else [Code mit Form Artikelvorhanden und Tabellen etc]
"
Soweit so gut. Klappt auch prima so. Jeder dieser Forms hat natürlich auch einen Submit Button.
Das Problem das ich allerdings habe, ist folgendes: Beim "Submitten" des 2 Forms wird als erstes der Formtag des ersten Form angesprochen und somit die falsche Seite aufgerufen. (Habe mir den Code der Ergebnisseite angeschaut:
<body>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="100%">
<form Method="POST" action="artikel_eingabe_update.asp" name="Artikelfrei">
<form method="POST" action="../Loeschen/artikel_loesch_form.asp" name="Artikelvorhanden">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
.
.
.
Die Formtags habe ich kontrolliert. Sie werden geöffnet und jeweils geschlossen.
Ich habe mich auch mit "document.Artikelfrei.submit()" beschäftigt und andere Problemlösungen ausprobiert. Hat aber alles nichts genützt.
Nun hoffe ich auf Eure Hilfe. Wie kann man die beiden Forms so auf einer Seite trennen, daß auch nur das gewünschte Form genutzt wird.
Falls jemand den ganzen Code einsehen will, poste ich ihn gerne. Habe es hier noch nicht gemacht, weil zu groß. Vielleicht geht es auch so.
Vielen Dank schon einmal
Tomc@t
Hallo,
Versuchen Sie doch mal keine Submit Buttons zu schreiben sonden eher
<input type="button" value="Los gehts" onClick="document.[Artikelfrei][Artikelvorhanden].submit">
dann ist eine direkte Verbindung der Buttons eher zu erkennen
Hi,
hat leider auch nicht zum Erfolg geführt. Mit diesem Code bekommen ich die Fehlermeldung:
"Document.Artikelvorhanden.submit ist kein Objekt"
Noch eine weitere Idee?
Gruß
Tomcat
Hi,
hat leider auch nicht zum Erfolg geführt. Mit diesem Code bekommen ich die Fehlermeldung:
"Document.Artikelvorhanden.submit ist kein Objekt"
Submit ist auch kein Objekt!!!
Document.Artikelvorhanden ist eins
submit ist ne Methode und du (oder ich) haßt warscheinlich die Klammern vergessen.
Also: document.Artikelvorhanden.submit();
Mit den Klammer habe ich auch ausprobiert. Gleicher (Miss)Erfolg.
Aber daran lag es nicht. Ich hatte den ersten Formtag vor die "If" Anweisung gesetzt (er durfte aber erst nach der "IF" Anweisung kommen). Damit war der erste Formtag natürlich jedesmal "offen".
Wurde aber erst erkannt, als ich den ganzen Code gepostet hatte.
Trotzdem danke.
Tomcat
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="100%">
<form Method="POST" action="artikel_eingabe_update.asp" name="Artikelfrei">
<form method="POST" action="../Loeschen/artikel_loesch_form.asp" name="Artikelvorhanden">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
Moin !
Kann es sein, dass Du die beiden Formulare verschachtelt hast?
<form ...>
<form ...>
</form>
</form>
Dann weiß der Submit-Button des zweiten Formulares natürlich nicht, dass er den zweiten Form-Tag beachten soll.
Nur so ne Idee, vielleicht isses das ja. Dann solltest Du die Formulare hintereinander setzen.
Ron
Hi Ron,
danke für Dein Tip. Hat aber leider nicht zum gewünschten Tip geführt. Ob verschachtelt habe ich mir schon gedacht und daraufhin kontrolliert. War aber nicht.
Noch `ne Idee?
Gruß
Tomcat
Anbei noch einmal mein Code. Vielleicht hilft es....
<link rel="stylesheet" type="text/css" href="../css/admin.css">
<title>ArtikelNummer</title>
</head>
<body>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="100%">
<form Method="POST" action="artikel_eingabe_update.asp" name="Artikelfrei">
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "Materialbestellung"
SQL = "Select * from Materialbestellung Where Artikelnr = " & Request.Form("Artikelnr")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3
if rs.BOF AND rs.EOF Then
%>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="100%"><font color="#FF0000" size="4"><b>Die Artikelnummer ist noch frei. Bitte gebn Sie Ihre Daten ein.</b></font></td>
</tr>
<tr>
<td width="100%"><img border="0" src="../images/Abstand_hoehe_10_transparent.gif" width="5" height="10"></td>
</tr>
<tr>
<td width="100%"><img border="0" src="../images/Abstand_breite_10_transparent.gif" width="10" height="5">ArtikelNummer:<br>
<img border="0" src="../images/Abstand_breite_10_transparent.gif" width="10" height="5"><input type="text" name="Artikelnr" size="7" value="<% =Request.Form("Artikelnr")%>"></td>
</tr>
<tr>
<td width="100%"><img border="0" src="../images/Abstand_breite_10_transparent.gif" width="10" height="5">Artikelbezeichnung:<br>
<img border="0" src="../images/Abstand_breite_10_transparent.gif" width="10" height="5"><input type="text" name="Artikel" size="30"></td>
</tr>
<tr>
<td width="100%"><img border="0" src="../images/Abstand_breite_10_transparent.gif" width="10" height="5">Max.
Bestellmenge<br>
<img border="0" src="../images/Abstand_breite_10_transparent.gif" width="10" height="5"><select size="1" name="MaxBestell">
<option value="25">25</option>
<option value="50">50</option>
<option value="75">75</option>
<option value="100">100</option>
</select></td>
</tr>
<tr>
<td width="100%"><img border="0" src="../images/Abstand_breite_10_transparent.gif" width="10" height="5">Für
Gruppe: (mehrfauswahl mit STRG + linke Maustaste)<br>
<img border="0" src="../images/Abstand_breite_10_transparent.gif" width="10" height="5"><select size="3" name="Gruppe" multiple>
<option value="Panda">Panda</option>
<option value="Adea">Adea</option>
<option value="IM">IM</option>
</select></td>
</tr>
</table>
<p> <input type="submit" value="Eintragen" name="B1">
</p>
</form>
</td>
</tr>
</table>
<%
else
%>
<form name="Artikelvorhanden" action="../Loeschen/artikel_loesch_form.asp" method="POST">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="100%">
<font color="#FF0000" size="4">Artikeleingabe</font>
<tr>
<td width="100%">
<img border="0" src="../images/Abstand_hoehe_10_transparent.gif" width="5" height="10">
<tr>
<td width="100%">
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "Materialbestellung"
SQL = "SELECT * FROM Materialbestellung where artikelnr = " & Request.Form("Artikelnr")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3
rs.MoveFirst
do while Not rs.eof
%>
Die Artikelnummer <input type="text" name="Artikelnr" size="7" value="<% =rs.Fields("Artikelnr")%>">
mit dem Artikel <input type="text" name="Artikel" size="30" value="<% =rs.Fields("Artikel")%>">
ist bereits vorhanden.
<p>Wählen Sie bitte einen unteren Button aus.<%
rs.MoveNext
loop
conn.close
%>
</p>
<p><input type="button" value="Zurück zur Prüfung" name="B1"><img border="0" src="../images/Abstand_breite_10_transparent.gif" width="10" height="5"><input type="button" value="Artikel löschen" onClick="document.Artikelvorhanden.submit" name="B2"></p></table>
<%
end if
%>
</form>
</body>
Tomcat
Moin nochmal !
Ich hab mal das unwesentliche gelöscht:
<form Method="POST" action="artikel_eingabe_update.asp" name="Artikelfrei">
<%
if rs.BOF AND rs.EOF Then
%>
</form>
<%
else
%>
<form name="Artikelvorhanden" action="../Loeschen/artikel_loesch_form.asp" method="POST">
<%
end if
%>
</form>
Da liegt der Fehler:
Du öffnest den ersten Form-Tag, dann kommt erst die if-Bedingung, im then-Statemant steht </form>. Also wird das erste Formular nur beendet, wenn auch das erste Formular angezeigt wird. Wenn nun das zweite Formular angezeigt wird, sind beide Form-Tags vorhanden. Richtig muss es so geordnet sein:
<%
if rs.BOF AND rs.EOF Then
%>
<form Method="POST" action="artikel_eingabe_update.asp" name="Artikelfrei">
</form>
<%
else
%>
<form name="Artikelvorhanden" action="../Loeschen/artikel_loesch_form.asp" method="POST">
</form>
<%
end if
%>
Ich hoffe, ich habe mich halbwegs verständlich ausgedrückt. :-)
Ron
Hi Ron,
Supi supi supi !!!! DANKE !
Und Deine Ausdrucksweise ist sehr verständlich.
Gruß
Tom