Frågan är nu hur jag ska göra med sidan som skall ta emot värdena.. Hur jag ska använda
For each item
Jag har försökt lite...
Set RS = Server.CreateObject("ADODB.Recordset")
For each item in Request.Form
Uppdatera = "SELECT * FROM personer WHERE Id = " & Request.Form("id") & " "
RS.Open Uppdatera, Connection, adOpenStatic, adLockOptimistic
RS("namn") = FixaTecken(Request.Form("namn"))
RS("telnr") = FixaTecken(Request.Form("telnr"))
RS("faxnr") = FixaTecken(Request.Form("faxnr"))
RS.Update
Next
RS.Close
Connection.Close
Någon som vet hur jag ska göra?
------------------
Ingenting är omöjligt, bara en utmaning.
Set RS = Server.CreateObject("ADODB.Recordset")
For i=1 to Request.Form("hidden").count
Uppdatera = "SELECT * FROM personer WHERE Id = " & Request.Form("hidden")(i)
RS.Open Uppdatera, Connection, adOpenStatic, adLockOptimistic
RS("namn") = FixaTecken(Request.Form("namn")(i))
RS("telnr") = FixaTecken(Request.Form("telnr")(i))
RS("faxnr") = FixaTecken(Request.Form("faxnr")(i))
RS.Update
Next
RS.Close
Connection.Close
Hehe den kör allt och det ser ut att fungera när jag kör med din senaste kod men den uppdaterar inte i databasen. jag kör response.write på alla prylar och allt ser ut att funka men den uppdaterer tamefan inte i databasen.. jag har accessdatabas om det kan vara något som stör ut?
------------------
Ingenting är omöjligt, bara en utmaning.
Nej det heter ID jag skrev fel till dig men det har jag ändrat till nu typ..
koden ser ut exakt som du skrivit den till mig. Jag kan typ skriva vad som helst i SQLsatsen typ select * from nisse utan att det blir något fel när jag kör sidan..
när jag kör response.write på alla värden som kommer så ser det korrekt ut.. men den struntar i allt som står inom FOR satsen verkar det som?
------------------
Ingenting är omöjligt, bara en utmaning.
For i=1 to Request.Form("ID").count
Uppdatera = "SELECT * FROM personer WHERE Id = " & Request.Form("ID")(i)
------------------
------------------- What a waste it is to lose one's mind. Or not to have a mind is being very wasteful. How true that is.
Dan Quayle
ok, om det är en uppdatering kan du använda dig av följande kod.
Med den kan du lista hur många du vill och endast uppdatera de som du har ändrat.
OBS!!! ändra ConnectionString så att den överensstämmer med sökvägen till din db. Du kanske får ändra lite mer, men hoppas att det funkar rakt av:
personer.asp
<%
Option Explicit
Response.Buffer = True
%>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY bgcolor="#FFFFFF">
<form method="post" action="personer_upd.asp">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Namn</b></td>
<td>Telnr</td>
<td>Faxnr</td>
<td align="center">Ändra</td>
</tr>
<%
Dim objConn
Dim strSQL
Dim objRS
Dim intId
Dim strNamn
Dim strTelnr
Dim strFaxnr
Set objConn = Server.CreateObject("ADODB.Connection")
With objConn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=x:\db-kat\dbnamn.mdb"
.Open
End With
strSQL = "SELECT id, namn, telnr, faxnr " & _
"FROM personer " & _
"ORDER BY id ASC"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, objConn, 0, 1
While Not objRS.EOF
intId = objRS(0)
strNamn = objRS(1)
strTelnr = objRS(2)
strFaxnr = objRS(3)
%>
<tr>
<td>
<input type="text" name="txtNamn<% =intId%>" size="40" value="<% =strNamn%>">
</td>
<td>
<input type="text" name="txtTelnr<% =intId%>" size="20" value="<% =strTelnr%>">
</td>
<td>
<input type="text" name="txtFaxnr<% =intId%>" size="20" value="<% =strFaxnr%>">
</td>
<td align="center">
<input type="checkbox" name="id" value="<% =intId%>">
</td>
</tr>
<%
objRS.MoveNext
Wend
objRS.Close
Set objRS = nothing
%>
<tr align="center">
<td colspan="3"><br>
<input type="submit" name="Submit" value="Ändra">
</td>
</tr>
</table>
</form>
</BODY>
</HTML>
<%
objConn.Close
Set objConn = nothing
%>
personer_upd.asp
<%
Option Explicit
Response.Buffer = True
%>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY bgcolor="#FFFFFF">
<%
Dim strRFid
Dim arrRFid
Dim objConn
Dim intId
Dim strNamn
Dim strTelnr
Dim strFaxnr
Dim i
Dim strSQL
strRFid = Request.Form("id")
Set objConn = Server.CreateObject("ADODB.Connection")
With objConn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=x:\db-kat\dbnamn.mdb"
.Open
End With
arrRFid = Split(strRFid,",")
For i = 0 TO UBound(arrRFid)
intId = Trim(arrRFid(i))
strNamn = Request.Form("txtNamn" & intId)
strTelnr = Request.Form("txtTelnr" & intId)
strFaxnr = Request.Form("txtFaxnr" & intId)
strSQL = "UPDATE personer SET " & _
"namn = '" & strNamn & "'," & _
"telnr = '" & strTelnr & "'," & _
"faxnr = '" & strFaxnr & "' " & _
"WHERE id = " & intId
objConn.Execute(strSQL)
Next
objConn.Close
Set objConn = nothing
%>
</BODY>
</HTML>