webForumDet fria alternativet

Inmatning av flera poster till samma kolumn

ASP

14 svar · 226 visningar · startad av Gimbo

Medlem sedan dec. 20001 626 inlägg
Frågan#1

Hejsan,

Jag undrar hur man gör för att mata in flera värden till en speciell kolumn, dvs att man har flera <input="text" name="blabl" value="40">, kanske 10st sådana under varandra sedan när man klickar på skicka så ska det som står i varje textfält skrivas in i en egen rad i den specifika kolumnen, plus att ett datum ska läggas till...

Hoppas ni förstår vad jag menar...

------------------

"Det starka är inte att aldrig kunna falla, det starta är att kunna resa sig efter ett fall"

Medlem sedan feb. 20012 412 inlägg
#2

Hej, koden förutsätter att de 3första fälten är av texttyp och det sista är av datumtyp. Det är bara att upprepa liknande mönster och lägga till så många fält du önskar.

sql = "INSERT INTO tabellen " & _
" (field1, field2, field3, dteDatum) " & _
" VALUES('" & Request.form("field1") & "', '" & Request.form("field2") & "', " & _
" '" & Request.form("field3") & "' , Now())"

Connection.Execute sql,,128

red, delade upp det på flera rader för att slippa oavsiktliga radbrytningar.

mvh Jörgen :)

------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.

[Redigerat av jorgen den 19 jan 2002]

Medlem sedan dec. 20003 563 inlägg
#3

Kanske stämmer det som står över men jag tyckte det verkade som om du ville skapa en ny post för varje input.
Kanske jag är ute och cyklar?

Hur som helst så kan du göra det på nått liknande sätt.

<%
for each x in request.form
conn.execute("SQL-kod där x = value från inputen")
next
%>

[r]Om du vill ha mer kontroll på vilka input och var de hamnar så använd en array med alla inputnamn som du har på förregående sida.

<%
namn = array("namn", "fodd", "bor")

for x = 0 to ubound(namn, 1)
response.write x & " = " & request.form(x)
next
%>

------------------
MVH // Cyprys
Cyprys
Synd att du inte kan köpa en voodoojordglob och sedan snurra på den fort som fan och skrämma skiten ur alla.

[Redigerat av cyprys den 19 jan 2002]

Medlem sedan dec. 20001 626 inlägg
#4

Jepp, cyprus vi förstod varandra bra där, du tolka mig rätt :) , så här ser min kod ut för hela filen, det är en väldigt enkel kod, men vad är det jag ska skriva då jag skriver till databasen jag använder mig inte utav SQL, så här ser det ut:

<html>

<head>
<title>Uppdatering av databas</title>
</head>

<body>

<% If Request.Querystring("action") = "" %>

<p>Uppdatera databasen:</p>
<p>&nbsp;</p>
<form type="method" action="kunskap.asp?action=add">
<input type="text" name="kunskap"><p>
<input type="text" name="kunskap"><p>
<input type="text" name="kunskap"><p>
<input type="text" name="kunskap"><p>
<input type="text" name="kunskap"><p>
</form>

<%End if%>

<% If Request.Querystring("action") = "add" %>
<%
Set Connect = ServerCreateObject("ADODB.Connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("datab.mdb")
%>
<%

	Set RecSet = Server.CreateObject("ADODB.Recordset")
   	Addera = "SELECT * FROM kunskap"

   	RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
	RecSet.AddNew

	RecSet("kunskap") = Request.Form("kunskap")
	RecSet("datum") = Request.Form("datum")	

	RecSet.Update
	RecSet.Close
	Connect.Close
	Set Connect = Nothing

%>
<%End If%>

Databasen är uppdaterad...
</body>

</html>

------------------

"Det starka är inte att aldrig kunna falla, det starta är att kunna resa sig efter ett fall"

Medlem sedan dec. 20001 626 inlägg
#5

Glömde Then i request.queystring men hur som helst det är inte problemet utan problemet är då den skriver till databasen

------------------

"Det starka är inte att aldrig kunna falla, det starta är att kunna resa sig efter ett fall"

Medlem sedan dec. 200012 464 inlägg
#6
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM kunskap"

RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic

for i = 1 to request.form("kunskap").count

RecSet.AddNew
RecSet("kunskap") = Request.Form("kunskap")(i)
RecSet("datum") = Request.Form("datum") 
RecSet.Update

next

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 20001 626 inlägg
#7

Det fungerar inte, får inget felmeddelande men den lägger inte till ngt i databasen...

<% If Request.Querystring("action") = "add" then %>
<%
Set Connect = ServerCreateObject("ADODB.Connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("datab.mdb")
%>
<%

	Set RecSet = Server.CreateObject("ADODB.Recordset")
   	Addera = "SELECT * FROM kunskap"

   	RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
	
	For i = 1 to request.form(kunskap).count
	
	RecSet Add.New
	RecSet("kunskap") = Request.Form("kunskap")(i)
	RecSet("datum") = Request.Form("datum")	
	RecSet.Update

	next

	RecSet.Close
	Connect.Close
	Set Connect = Nothing

%>
<%End If%>

------------------

"Det starka är inte att aldrig kunna falla, det starta är att kunna resa sig efter ett fall"

[Redigerat av Gimbo den 20 jan 2002]

Medlem sedan dec. 200012 464 inlägg
#8

Du har glömt citationstecken här

For i = 1 to request.form("kunskap").count

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 20001 626 inlägg
#9

Det fungerar fortfarande inte, har lagt till de men den skriver fortfarande inte till databasen...

------------------

"Det starka är inte att aldrig kunna falla, det starta är att kunna resa sig efter ett fall"

Medlem sedan dec. 200012 464 inlägg
#10

Om du lägger till method='POST' i ditt form element så att du får värdena i request.form ...

<p>Uppdatera databasen:</p>
<p> </p>
<form type="method" action="kunskap.asp?action=add" method="POST">
<input type="text" name="kunskap"><p>
<input type="text" name="kunskap"><p>
<input type="text" name="kunskap"><p>
<input type="text" name="kunskap"><p>
<input type="text" name="kunskap"><p>
</form>

Du kan ju även lägga till en testutskrift i kunskap.asp så att du ser att du får in värden.

response.write "Antal fält:" & request.form("kunskap").count
For i = 1 to request.form("kunskap").count

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 20001 626 inlägg
#11

Alltså LArs så här ser hela min kod ut:


<html>

<head>
<title>Uppdatering av databas</title>
</head>

<body>

<% If Request.Querystring("action") = "" then %>

<p>Uppdatera databasen:</p>
<p>&nbsp;</p>
<form type="method" action="kunskap.asp?action=add" method="POST">
<input type="text" name="kunskap"><p>
<input type="text" name="kunskap"><p>
<input type="text" name="kunskap"><p>
<input type="text" name="kunskap"><p>
<input type="text" name="kunskap"><p>
<input type="submit" value="GO">
</form>

<% End if %>

<% If Request.Querystring("action") = "add" then %>
<%

	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("datab.mdb")
%>
<%
	Set RecSet = Server.CreateObject("ADODB.Recordset")
   	Addera = "SELECT * FROM kunskap"

   	RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
	
	For i = 1 to request.form("kunskap").count
	
	RecSet Add.New
	RecSet("kunskap") = Request.Form("kunskap")(i)
	RecSet("datum") = Request.Form("datum")	
	RecSet.Update

	next

	RecSet.Close
	Connect.Close
	Set Connect = Nothing

%>
<% End if %>

</body>

</html>

Och får detta felmeddelande:

ADODB.Recordset fel '800a0bb9' 

Programmet använder felaktiga parametrar, som antingen ligger utanför tillåtet intervall, eller som skapar en inbördes konflikt. 

kunskap.asp, rad 36

------------------

"Det starka är inte att aldrig kunna falla, det starta är att kunna resa sig efter ett fall"

Medlem sedan dec. 200012 464 inlägg
#12

Du har inte med ADOVBS.inc så vitt jag kan se och då är konstanterna adOpenStatic och adLockOptimistic odefinierade.

Du kan ju definiera dom själv

const adOpenStatic = 3' 
const adLockOptimistic = 3

eller använda adovbs.inc

------------------
essentitia preter non sans multiplicandum

Medlem sedan dec. 20001 626 inlägg
#13
Körningsfel i Microsoft VBScript fel '800a01a8' 

Objekt krävs.: 'Add' 

kunskap.asp, rad 40

Vart ska jag tryck in add?

------------------

"Det starka är inte att aldrig kunna falla, det starta är att kunna resa sig efter ett fall"

Medlem sedan dec. 19998 577 inlägg
#14

Denna raden skall ändras:

RecSet Add.New

till:

RecSet.AddNew

------------------
Mostly Harmless

Medlem sedan dec. 20001 626 inlägg
#15

Tack Lars G och tack Vide jag fick det att fumgera nu :-) ..

------------------

"Det starka är inte att aldrig kunna falla, det starta är att kunna resa sig efter ett fall"

275 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
151 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)