har denna kod, vill få in resultatet av vad den gör in i en access databas, har inte lyckats att lösa det så nu behöver jag hjälp, vill där jag har SQL gärna köra med Request.Form, men då måste jag ju fixa denna kod så att det är möjligt med Request.Form ju och det är det jag vill ha hjälp med Det är svårt att hjälpa dig när man du inte bifogar tillräcklig information. Berätta först vad det är du vill utföra. Typ spara flera poster till en tabell. Om du skall skicka formulär värden vidare från en sida måstu dut inkuldera informationen. T.ex. i dolda fält. TAck för all hjälp Andreas!! Va? Jag förstår inte vad du gjort eller hur du vill ha det.Request.Form hjälp
<code>
<%
'--- räknare
Dim intCounter
'--- antal loopar du vill göra
Dim intLoops
intLoops = 15
Dim Antal, Tal
For intCounter = 1 To intLoops
'--- om värdet av textrutan INTE är noll OCH om värdet i LintE inte är noll
if Request.Form("antal_0" & intCounter) <> 0 AND Request.Form("tal" & intCounter) <> 0 then
Antal = Trim(Request.Form("antal_0" & intCounter))
Tal = Trim(Request.Form("tal" & intCounter))
Response.Write("<tr><td align=""left"">" & Antal & "</td><td align=""right"">" & CDbl(Antal) * CDbl(Tal)) & "</td></tr>"
end if
Next
%>
</code>Sv: Request.Form hjälp
Berätta sedan hur du idag börjat gå till väga och var du stött på problem.Sv: Request.Form hjälp
Jag har ett antal fält på på 1:a sidan där jag skriver (siffror) in typ antal och pris och då räknar denna kod det typ 5 X 10 = 50 och det funkar jätte. Dessa värden ("antal_0" och "tal" ) hämtas och fixas på sidan 2 så det blir rätt (Det är på sidan 2 denna kod finns) och det ser jag efter att jag klickat på Okej knappen på sidan 1.
sedan så skall jag till sidan 3 där min SQL sträng finns och då jag kommer dit så funkar det inte, jag vill kanske ha en annan kod som funkar på samma sätt och som jag kan ha i en form för att i SQL strängen kunna skriva Request.Form("???????") koden ligger ju inte så att jag kan göra det , jag har försökt att kopiera in all kod i en form men det blri bara fel, vill kunna få det in i en access databas för att sedan kunna hämta in de rätta sedan på en annan sida typ sida 4, jag har försökt på alla möjliga sätt men inte fått nått att funka :-( kanske jag bör göra på att annat sätt?? tacksam för alla bra svar!
//Tommy
<code> <%
'--- räknare
Dim intCounter
'--- antal loopar du vill göra
Dim intLoops
intLoops = 15
Dim Antal, Tal
For intCounter = 1 To intLoops
'--- om värdet av textrutan INTE är noll OCH om värdet i LintE inte är noll
if Request.Form("antal_0" & intCounter) <> 0 AND Request.Form("tal" & intCounter) <> 0 then
Antal = Trim(Request.Form("antal_0" & intCounter))
Tal = Trim(Request.Form("tal" & intCounter))
Response.Write("<tr><td align=""left"">" & Antal & "</td><td align=""right"">" & CDbl(Antal) * CDbl(Tal)) & "</td></tr>"
end if
Next
%> </code>Sv: Request.Form hjälp
Här ha jag ett litet exempel som kanske kan vara till hjälp.
Page1.asp
<code>
<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<FORM action="Page2.asp" method=POST id=form1 name=form1>
<TABLE BORDER=0>
<TR>
<TD>Produkt</TD>
<TD>Antal</TD>
<TD>Belopp</TD>
</TR>
<%
Dim Index
For Index = 1 to 10
%>
<TR>
<TD><INPUT type="text" id=text1 name="Produkt<%=Index%>"></TD>
<TD><INPUT type="text" id=text2 name="Antal<%=Index%>"></TD>
<TD><INPUT type="text" id=text3 name="Belopp<%=Index%>"></TD>
</TR>
<%
Next
%>
<TR>
<TD colspan="3" align="right"><INPUT type="submit" value="Skicka" id="action" name="action"></TD>
</TR>
</TABLE>
<INPUT type="hidden" name="count" value="<%=Index%>">
</FORM>
</BODY>
</HTML>
</code>
Page2.asp
<code>
<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<FORM action="Page3.asp" method=POST>
<TABLE BORDER=0>
<TR>
<TD><B>Produkt</B></TD>
<TD><B>Antal</B></TD>
<TD><B>Belopp</B></TD>
<TD><B>Summa</B></TD>
</TR>
<%
Dim Count
Dim Index
Dim NewIndex
Dim Produkt
Dim Antal
Dim Belopp
Dim Summa
If Request.Form("action") = "Skicka" Then
Count = CLng(Request.Form("count"))
For Index = 1 to Count
Produkt = "" & Request.Form("Produkt" & Index)
Antal = "" & Request.Form("Antal" & Index)
Belopp = "" & Request.Form("Belopp" & Index)
If IsNumeric(Antal) And IsNumeric(Belopp) Then
NewIndex = NewIndex + 1
Summa = Summa + (Antal * Belopp)
%>
<TR>
<TD><%=Server.HTMLEncode(Produkt)%></TD>
<TD align="right"><%=Antal%></TD>
<TD align="right"><%=Belopp%></TD>
<TD align="right"><%=Antal * Belopp%></TD>
</TR>
<INPUT type="hidden" name="Produkt<%=NewIndex%>" value="<%=Server.HTMLEncode(Produkt)%>"></TD>
<INPUT type="hidden" name="Antal<%=NewIndex%>" value="<%=Server.HTMLEncode(Antal)%>"></TD>
<INPUT type="hidden" name="Belopp<%=NewIndex%>" value="<%=Server.HTMLEncode(Belopp)%>"></TD>
<%
End If
Next
End If
%>
<TR>
<TD colspan="3" align="right"><B>Totalt</B></TD>
<TD align="right"><B><%=Summa%></B></TD>
</TR>
<TR>
<TD colspan="4" align="right"><INPUT type="submit" value="Bekräfta" id="action" name="action"></TD>
</TR>
</TABLE>
<INPUT type="hidden" name="count" value="<%=NewIndex%>">
</FORM>
</BODY>
</HTML>
</code>
Page3.asp
<code>
<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<%
Dim Count
Dim Index
Dim strSQL
Dim Produkt
Dim Antal
Dim Belopp
If Request.Form("action") = "Skicka" Then
Count = CLng(Request.Form("count"))
For Index = 1 to Count
Produkt = "" & Request.Form("Produkt" & Index)
Antal = "" & Request.Form("Antal" & Index)
Belopp = "" & Request.Form("Belopp" & Index)
If IsNumeric(Antal) And IsNumeric(Belopp) Then
strSQL = "INSERT INTO TabellNamn (Produkt, Antal, Belopp)" & vbCrLf & _
"VALUES ('" & Replace(Produkt, "'", "''") & "', " & CLng(Antal) & ", " & Replace(Belopp, ",", ".") & ")"
' Kör fråga mot databasen
End If
Next
End If
%>
Tack för din order!
</BODY>
</HTML>
</code>Sv: Request.Form hjälp
<code> <%
Dim Count
Dim Index
Dim NewIndex
Dim Produkt
Dim Antal
Dim Belopp
Dim Summa
If Request.Form("action") = "Skicka" Then
Count = CLng(Request.Form("count"))
For Index = 1 to Count
Produkt = "" & Request.Form("Produkt" & Index)
Antal = "" & Request.Form("Antal" & Index)
Belopp = "" & Request.Form("Belopp" & Index)
If IsNumeric(Antal) And IsNumeric(Belopp) Then
NewIndex = NewIndex + 1
Summa = Summa + (Antal * Belopp)
%> </code>
Denna kod funkar så som jag vill! men bara ett fel :-( kanske inte är ett fel?, i access skriver jag in dessa fält Produkt, Antal, Belopp och Sista Antal * Belopp om vi tar tex. Produkt så vill jag ju för att få det under varandra och då skriver jag: <code> <%=Server.HTMLEncode(Produkt)%><br> </code> och det funkar då bör det ju i access se ut typ <code> Kudde<br>Lampa<br>Sax<br> </code> o.s.v. men så gör det inte nu, nu så ser det ut så här i fältet i access:
<code> Kudde<br>, Lampa<br>, Sax<br> </code>
då bör det väll se ut så här då jag vill skriva ut detta på en annan sida:
Kudde<br>, Lampa<br>, Sax<br>
vill ju att det skall bli så här:
Kudde
Lampa
Sax
alltså jag vill få bort , och mellanslaget som kommer på Produkt, Antal, Belopp och Antal * Belopp
har fixat, och lagt till lite andra saker så nu så ser min SQL ut så här:
<code> <%
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("faktura_adress.mdb")
SQL = "Insert Into spara(Produkt, Antal, Belopp, Summa, faktura_nummer, utan_moms, moms, Totalt) VALUES ('" & Request.Form("Produkt") & "', '" & Request.Form("Antal") & "', '" & Request.Form("Belopp") & "', '" & Request.Form("Summa") & "', '" & Request.Form("faktura_nummer") & "', '" & Request.Form("utan_moms") & "', '" & Request.Form("moms") & "', '" & Request.Form("Totalt") &"')"
mess= "<b>Fakturan för</b> "
mess1= " <b>är klar för utskrift</b>"
mess3= "<b>Gå och skriva ut den!</b>"
Set rs = db.Execute(SQL)
Set rs = nothing
Set db = nothing
%> </code>
fixa oxå om så jag fick på alla 4:a så här Produkt Antal o.s.v.
<code><input name="Produkt" type="text" id="Produkt" value="<%=Server.HTMLEncode(Produkt)%><br>"> </code>
Du skrev att jag skulle göra så här, <code> <%=Server.HTMLEncode(Produkt)%> </code>
men jag hajja inte hur jag skulle fixa SQL koden och koplingen till databasen då, du skrev "' Kör fråga mot databasen" på sidan Page3.asp och det hajja jag inte :-( är det typ "Set db = Server.CreateObject("ADODB.Connection")" du menade??
som du ser så la jag till i SQL koden så la jag till 2 till ena som räknar ut vad momsen är av det totala priset och en som visar priset utan moms
<code> <input name="utan_moms" type="text" id="Summa23" value="<%=Summa / 1.25 %> </code>
och
<code> <input name="moms" type="text" id="Summa222" value="<%=Summa / 5 %> </code>
om detta är rätt med moms o.s.v. vet jag inte men det är ju bara och ändra talen så man får rätt då men det var så här jag gjorde.
hoppas att du förstår vad jag menar och att jag och har förstått att felet ligger i koden så jag har med här.
hoppas du har mera hjälp on detta till mig!
//TommySv: Request.Form hjälp
Men som jag tolkar det försöker du spara alla artiklar till en post. Vilket är enligt normaliseringens regler.
Du bör istället använda två tabeller.
T.Ex.
Tabell: tblOrder
Fält: OrderId
Fält: OrderDatum
Fält: OrderSumma
Osv...
Tabell: tblOrderRad
Fält: OrderRadId
Fält: OrderRadOrder -> tblOrder.OrderId
Fält: OrderRadArtikel
Fält: OrderRadAntal
Fält: OrderRadPris
Osv...