webForumDet fria alternativet
Logga in / Bli medlem

Avacerad submit??

ASP

12 svar · 219 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Trådstart#1

Jag försöker att få ihop ett formulär i tre steg.
1: Fylleri(alltså inputsbox)
2: Kolla om uppgifterna är rätt
3: Till databasen.

Så här försöker jag:
<% If LEN(Request.Form("Namn"))=0 OR LEN(Request.Form("Epost"))=0 OR LEN(Request.Form("Inlagg"))=0 Then %>
<FORM METHOD="POST" ACTION="Nytt.ASP">

Lite kod här

<BR><INPUT TYPE="SUBMIT" VALUE="Skicka">
<INPUT TYPE="RESET" VALUE="Rännsa fälten">
</FORM>
<% ElseIf Request("Submit")= "Skicka" Then

Mera kod här

<FORM METHOD="POST" ACTION="Nytt.ASP">
Mera kod

</FORM>
<% ElseIf Request("Submit")= "Skicka till forum" Then
%>
Och här till databasen
Detta lyckas inte, någon som vet varför?

Medlem sedan juni 20019 024 inlägg
#2

Submit knappen måste ha ett namn ex:

<INPUT TYPE="submit" NAME="submit" VALUE="Skicka">

Dessutom måste Request("submit") vara Request.Form("submit") istället så att man plockar info från formuläret.

Hoppas det funkar!

Medlem sedan juni 20019 024 inlägg
#3

Förresten så är fylleri olagligt i samband med bilkörning... :e

Medlem sedan mars 20011 880 inlägg
#4

Nix, det var tyvärr inte så enkelt, som att lägga till namnet....
Visst det går ju att göra en fil till, men jag ville gärna plocka ihop det till en fil..

Jodå visst är fylleri olagligt, men fyll-e-ri????

Medlem sedan juni 200032 967 inlägg
#5

Dessutom måste Request("submit") vara Request.Form("submit") istället så att man plockar info från formuläret.

nej. det kan dock vara bra att säga vilken collection man vill använda, .form eller .querystring till exempel, gör man inte det så söks alla collections (cookies, servervariables, form querystring, osv) tills det sökta hittas.

det är alltså bättre att ange collection, men man måste ingalunda göra det.

saw: på vilket sätt lyckas det inte?

Medlem sedan mars 20011 880 inlägg
#6

Jo jag vill ju ha det så, att efter fylleriet, så kommer man till förhandsgranska, därefter skickas till databasen.
Som min kod är, så går den direkt till databasen, alltså hoppar över förhandsgranska.
I mitt stilla sinne så hoppades jag att jag kunde göra någonting så här enkelt, annars så får jag bygga ett flersidigt formulär, och då vet jag att det löser sig, men jag hoppades som sagt attdet skulle lösa sig....

Medlem sedan juni 200032 967 inlägg
#7

det är klart att det går att lösa.

posta hela din sida här så kan vi fixa det. det är lättare att se vad som är galet om man ser lite sammanhang.

Medlem sedan maj 20011 312 inlägg
#8

Jag fattar inte riktigt det där med att man checkar av om formuläret är korrekt i fyllt med asp...och inte med javascript på klienten?

Medlem sedan mars 20002 836 inlägg
#9

Här kommer det liiiite kod ;) som du kan labba med:

svar.asp

<%
Option Explicit

Response.Buffer = TRUE

'================================================================================

	Sub getSvar(ByVal iFraga)
		Dim obj
		Dim m_strSvar
		
		'## -- hämta det nyss postade svaret --
		m_strSvar = Request.Form("txt_Svar_" & (iFraga - 1))

		'## -- spara svaret i ett hidden fält --
		Response.Write "<INPUT type=""hidden"" " & _
								"name=""hid_Svar_" & (iFraga - 1) & """ " & _
								"value=""" & m_strSvar & """>"

		'## -- hämta alla redan sparade frågor och
		'##    spara dem i hidden fält --
		For Each obj In Request.Form
			If Left(obj,9) = "hid_Svar_" Then
				m_strSvar = Request.Form(obj)
				
				'## -- spara svaret i ett hidden fält --
				Response.Write "<INPUT type=""hidden"" " & _
										"name=""" & obj & """ " & _
										"value=""" & m_strSvar & """>"
			End If
		Next
	End Sub

	'----------------------------------------------------------------------------

'================================================================================

Dim intTotFragor, intFraga, I
Dim strSvar

'## -- hur många frågor finns det totalt --
intTotFragor = 5

'## -- hämta vilken fråga som ska visas --
intFraga = Request.Form("txt_FragaNr")
	If intFraga = "" Then intFraga = 1
%>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<%
If Request.Form("txt_Collect") = "" Then
%>
<TITLE>Fråga <% =intFraga%> - Fylleriet</TITLE>
<%
Else
%>
<TITLE>Dina svar har nu postats - Fylleriet</TITLE>
<%
End If
%>
</HEAD>
<BODY bgcolor="#FFFFFF" text="#000000">
<%
If Request.Form("txt_Collect") = "" Then
%>
<FORM name="form1" method="post" action="svar.asp">
<INPUT type="hidden" name="txt_FragaNr" value="<% =intFraga + 1%>">
<TABLE border="0" cellspacing="0" cellpadding="3">
	<%
	If CInt(intFraga) <= CInt(intTotFragor) Then
	%>
	  <TR> 
		<TD colspan="2"> 
		  <P><FONT face="Verdana, Arial, Helvetica, sans-serif" size="2"><B>Fråga <% =intFraga%></B></FONT></P>
			<P><FONT face="Verdana, Arial, Helvetica, sans-serif" size="2"> 
			  <TEXTAREA name="txt_Svar_<% =intFraga%>" cols="40" rows="10"></TEXTAREA>
	<%
		If intFraga > 1 Then
			'## -- hämta redan postade frågor --
			Call getSvar(intFraga)
		End If
	%>
			  </FONT></P>
		</TD>
	  </TR>
	  <TR> 
		
      <TD> </TD>
		  <TD align="right">
			<INPUT type="submit" name="Submit" value="Svara">
		  </TD>
	  </TR>
	<%
	Else
		Call getSvar(intFraga)
		
		For I = 1 To intTotFragor
			If CInt(I) < CInt(intTotFragor) Then
				strSvar = Request.Form("hid_Svar_" & I)
			Else
				strSvar = Request.Form("txt_Svar_" & I)
			End If
	%>
	  <TR>
		<TD>
			Fråga <% =I%>:<BR>
			<% =strSvar%>
			
		  </TD>
	  </TR>
	<%
		Next
	%>
	  <TR>
		<TD>
	<INPUT type="submit" name="Submit2" value="Skicka Svaren">
		</TD>
	  </TR>
	<INPUT type="hidden" name="txt_Collect" value="1">
	<%
	End If
	%>
	</TABLE>
</FORM>
<%
Else
	'## -- hämta in alla frågor som ligger i hid_Svar_<fraganr> --
	For I = 1 To intTotFragor
		strSvar = Request.Form("hid_Svar_" & I)
		'## -- gör vad du ska med svaret --
		Response.Write strSvar & "<BR>"
	Next
%>
Dina svar har nu skickats
<%
End If
%>
</BODY>
</HTML>

cya,
PatrikB

Medlem sedan mars 20011 880 inlägg
#10

Det är så här som jag försöker.
Nu har jag ändrat lite granna, och försöker med att lägga värde i hidden forms, men resultatet är detsamma.
Så här ser koden ut så långt:

<!--#include file="../style/dataconn.inc"-->
<%

SQL="SELECT TOP 1 Forum.Hits FROM FORUM"
Set RS = Connection.Execute(SQL)
strHits = RS("HITS") +1
%>
<html>
<head>
<link REL="stylesheet" HREF="../style/Style.css" TYPE="text/css">
<LINK rel="stylesheet" type="text/css" href="styles.css">
<title>Forum</title>
</head>
<BODY>
<TABLE><TR><TD VALIGN=TOP>
<!--#include file="Knappar.asp"-->
</TD><TD VALIGN=TOP>
<% If LEN(Request.Form("Namn"))=0 OR LEN(Request.Form("Epost"))=0 OR LEN(Request.Form("Inlagg"))=0 Then %>
<FORM METHOD="POST" ACTION="Nytt.ASP">

<TABLE WIDTH="450" BORDER=0><TR>
<TD VALIGN=TOP colspan=4 WIDTH="450">Nytt Inlägg</TD></TR>
<TR><TD>Namn:</TD>
<TD><INPUT NAME="Namn" SIZE=25></TD></TR>
<TR><TD>Epost:</TD>
<TD><INPUT NAME="Epost" SIZE=25></TD></TR>
<TR><TD>Rubrik</TD>
<TD><INPUT NAME="Rubrik" SIZE=25></TD></TR>
<TR><TD>Datum:</TD>
<TD><INPUT NAME="Datum" VALUE="<%=Date()%>" SIZE=25></TD></TR>
<TR><TD>Inlägg:</TD>
<TD><textarea rows="4" name="Inlagg" cols="40"></TEXTAREA></TD></TR>
</TD></TR></TABLE>
<BR>
<INPUT TYPE="hidden" NAME="Edit" VALUE="Forhand">
<INPUT TYPE="SUBMIT" NAME="submit" VALUE="Skicka">
</FORM>
<%

ElseIf Request.Form("Edit")= "Forhand" Then
Dim strNamn,strEpost,strRubrik,strDatum,strInlagg
strNamn=Request("Namn")
strEpost=Request("Epost")
strRubrik=Request("Rubrik")
strDatum=Request("Datum")
strInlagg=Request("Inlagg")
%>
<INPUT TYPE="hidden" NAME="Namn" VALUE="<%=strNamn%>">
<INPUT TYPE="hidden" NAME="Epost" VALUE="<%=strEpost%>">
<INPUT TYPE="hidden" NAME="Rubrik" VALUE="<%=strRubrik%>">
<INPUT TYPE="hidden" NAME="Datum" VALUE="<%=strDatum%>">
<INPUT TYPE="hidden" NAME="Inlagg" VALUE="<%=strInlagg%>">
<INPUT TYPE="hidden" NAME="Edit" VALUE="Sand">
<%
'Response.Write "String: " & Request.QueryString & "<br>"
'Response.Write "Form: " & Request.Form & "<br>"
%>
<FORM METHOD="POST" ACTION="Nytt.ASP">

<TABLE WIDTH="450" BORDER=0><TR>
<TD VALIGN=TOP colspan=4 WIDTH="450">Nytt Inlägg</TD></TR>
<TR><TD>Namn:</TD>
<TD><%=strNamn%></TD></TR>
<TR><TD>Epost:</TD>
<TD><%=strEpost%></TD></TR>
<TR><TD>Rubrik</TD>
<TD><%=strRubrik%></TD></TR>
<TR><TD>Datum:</TD>
<TD><%=strDatum%></TD></TR>
<TR><TD>Inlägg:</TD>
<TD><%=strInlagg%></TD></TR>
</TD></TR></TABLE>
<BR>
<INPUT TYPE="hidden" NAME="Edit" VALUE="Sand">
<INPUT TYPE="SUBMIT" NAME="submit1" VALUE="Skicka till forum">
</FORM>

<% ElseIf Request.Form("Edit")= "Sand" Then

Response.Write "String: " & Request.QueryString & "<br>"
Response.Write "Form: " & Request.Form & "<br>"

%>
Här skall databaskoderna komma
<%End If %>
</BODY>
</HTML>
Jag är alltså bara i början, men jag skulle vilja ha med mig allt till blocket "sand"

Medlem sedan juni 200152 inlägg
#11

Submit knappen måste ha ett namn

funkar lika bra utan namn

Medlem sedan mars 20011 880 inlägg
#12

Tack för att ni tog er tid och titta, men det är löst nu.

Medlem sedan mars 20011 880 inlägg
#13

Glad är den som tror att allting är löst : (
Nu fungerar det som så, när jag har skrivit in någonting, så får jag med det till förhandsgranska, men när jag sedan posta det till sista elseif-satsen, då händer ingenting.
DVS jag kommer till en "ny sida" men kan inte skriva in någonting i koden, för det visas ingenting.
Den sista biten ser ut så här:

<INPUT TYPE="SUBMIT" VALUE="Skicka">
<INPUT TYPE="hidden" NAME="Edit" VALUE="Skicka">
</FORM>

<%
Session("Namn")=strNamn
Session("Epost")=strEpost
Session("Rubrik")=strRubrik
Session("Datum")=strDatum
Session("Hits")=strHits
Session("Inlagg")=strInlagg

ElseIf Request.form("Edit")="Skicka" Then

Response.Write Session("Namn") & "<BR>"
Response.Write Session("Epost") & "<BR>"
Response.Write Session("Rubrik") & "<BR>"
Response.Write Session("Datum") & "<BR>"
Response.Write Session("Hits") & "<BR>"
Response.Write Session("Inlagg") & "<BR>"

End If
%>
Någon som kan se vad jag inte ser?

267 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)