09. september 2003 - 22:36Der er
18 kommentarer og 2 løsninger
Gemme i flere records ad gangen!
Hejsa eksperter!
Jeg har en side hvor jeg looper nogle data ud i en tabel:
I disse data er der et felt der hedder "Tstatus" denne er som standard sat til en værdi på "nej" det jeg genre vil have den til er at alle dataerne bliver loopet således man kan se dem alle i en tabel, det skal så være muligt at klikke på én af felterne via en radion botton hvorefter det ene felt får værdien "ja" - man skal derefter kunne gemme!
Næste gang man så går ind på siden vil det felt med værdien "ja" så være markeret - hvilket så selvfølgelig skulle kunne ændres valgfrit!
Jeg har fået den til at loope forneden, men kan ikke få den til at gemme
<% if slettesM.Fields.Item("Tstatus") = "ja" then %> <input type="radio" name="Tstatus" value="ja" checked> <% else %> <input type="radio" name="Tstatus"> <% end if %>
Så hvis der mange records får en en stor radio gruppe, hvis du ikke giver radio kanppen et navn så den høre til en bestemt record ved man så ikke hvilken den høre til..
Ok den er jeg med på! men jeg er desværre helt blank hvordan jeg får den til at gemme flere records ad gangen! har du nogle forslag!
Det skal jo være sådan, at hvis en record har status "ja" og man klikker på en anden record skal den både gemme nej i den første record og ja i den sidst valgte!! det er her jeg er helt lost!!
Så skal du lave det som en blanding af de løninger, som du har lavet radio knapperne:
Dog skal der så ID med i value så du ved hvilken der skal sættes til ja
<% if slettesM.Fields.Item("Tstatus") = "ja" then %> <input type="radio" name="Tstatus" value="<%=slettesM("tid")%>" checked> <% else %> <input type="radio" name="Tstatus" value="<%=slettesM("tid")%>"> <% end if %>
---------------
På siden som gemmer gør du sådan her for ført at fjener Ja'et og sætte Ja i den nye record, Conn skal være en conenction til din database:
<% id = Request.Form("Tstatus") if id <> "" then 'Set ja -> nej SQL = "UPDATE tabel SET Tstatus = 'nej' WHERE Tstatus = 'ja'" Conn.Execute(SQL) 'Set den nye kolonne til ja SQL = "UPDATE tabel SET Tstatus = 'ja' WHERE TID = " & id Conn.Execute(SQL) end if %>
' create the MM_fields and MM_columns arrays MM_fields = Split(MM_fieldsStr, "|") MM_columns = Split(MM_columnsStr, "|")
' set the form values For i = LBound(MM_fields) To UBound(MM_fields) Step 2 MM_fields(i+1) = CStr(Request.Form(MM_fields(i))) Next
' append the query string to the redirect URL If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString Else MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString End If End If
End If %> <% ' *** Update Record: construct a sql update statement and execute it
If (CStr(Request("MM_update")) <> "" And CStr(Request("MM_recordId")) <> "") Then
' create the sql update statement MM_editQuery = "update " & MM_editTable & " set " For i = LBound(MM_fields) To UBound(MM_fields) Step 2 FormVal = MM_fields(i+1) MM_typeArray = Split(MM_columns(i+1),",") Delim = MM_typeArray(0) If (Delim = "none") Then Delim = "" AltVal = MM_typeArray(1) If (AltVal = "none") Then AltVal = "" EmptyVal = MM_typeArray(2) If (EmptyVal = "none") Then EmptyVal = "" If (FormVal = "") Then FormVal = EmptyVal Else If (AltVal <> "") Then FormVal = AltVal ElseIf (Delim = "'") Then ' escape quotes FormVal = "'" & Replace(FormVal,"'","''") & "'" Else FormVal = Delim + FormVal + Delim End If End If If (i <> LBound(MM_fields)) Then MM_editQuery = MM_editQuery & "," End If MM_editQuery = MM_editQuery & MM_columns(i) & " = " & FormVal Next MM_editQuery = MM_editQuery & " where " & MM_editColumn & " = " & MM_recordId
If (Not MM_abortEdit) Then ' execute the update Set MM_editCmd = Server.CreateObject("ADODB.Command") MM_editCmd.ActiveConnection = MM_editConnection MM_editCmd.CommandText = MM_editQuery MM_editCmd.Execute MM_editCmd.ActiveConnection.Close
If (MM_editRedirectUrl <> "") Then Response.Redirect(MM_editRedirectUrl) End If End If
End If %> <% set slettesM = Server.CreateObject("ADODB.Recordset") slettesM.ActiveConnection = MM_gratis_STRING slettesM.Source = "SELECT * FROM slettes ORDER BY TID DESC" slettesM.CursorType = 0 slettesM.CursorLocation = 2 slettesM.LockType = 3 slettesM.Open() slettesM_numRows = 0 %> <% Dim Repeat1__numRows Repeat1__numRows = -1 Dim Repeat1__index Repeat1__index = 0 slettesM_numRows = slettesM_numRows + Repeat1__numRows %> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF" text="#000000"> <form ACTION="<%=MM_editAction%>" METHOD="POST" name="form1"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td><b>test</b></td> <td> </td> </tr> <% While ((Repeat1__numRows <> 0) AND (NOT slettesM.EOF)) %> <tr> <td><%=(slettesM.Fields.Item("Tbeskrivelse").Value)%><b> - <%=(slettesM.Fields.Item("Tstatus").Value)%></b></td> <td> <div align="right"><b> <% if slettesM.Fields.Item("Tstatus") = "ja" then %> <input type="radio" name="Tstatus" value="<%=slettesM("tid")%>" checked> <% else %> <input type="radio" name="Tstatus" value="<%=slettesM("tid")%>"> <% end if %> <br> </b></div> </td> </tr> <% Repeat1__index=Repeat1__index+1 Repeat1__numRows=Repeat1__numRows-1 slettesM.MoveNext() Wend %> </table> <% id = Request.Form("Tstatus") if id <> "" then 'Set ja -> nej SQL = "UPDATE tabel SET Tstatus = 'nej' WHERE Tstatus = 'ja'" Conn.Execute(SQL) 'Set den nye kolonne til ja SQL = "UPDATE tabel SET Tstatus = 'ja' WHERE TID = " & id Conn.Execute(SQL) end if %> <p> <input type="submit" name="Submit" value="Submit"> </p> <input type="hidden" name="MM_update" value="true"> <input type="hidden" name="MM_recordId" value="<%= slettesM.Fields.Item("TID").Value %>"> </form> <p> </p> </body> </html> <% slettesM.Close() %>
<% id = Request.Form("Tstatus") if id <> "" then 'Set ja -> nej SQL = "UPDATE tabel SET Tstatus = 'nej' WHERE Tstatus = 'ja'" Conn.Execute(SQL) 'Set den nye kolonne til ja SQL = "UPDATE tabel SET Tstatus = 'ja' WHERE TID = " & id Conn.Execute(SQL) end if %>
problemet er at når man sætter macromedia til at update melder den fejl da den ikke understøtter at gemme flere records ad gangen! jeg ved derfor ikke hvorleds jeg sætter den til at gemme på næste side - da dette kun kan gøres på den side loopet udføres!
nedenstående melder ikke fejl, men den gemmer heller ikke
<% id = Request.Form("Tstatus") if id <> "" then 'Set ja -> nej SQL = "UPDATE tabel SET Tstatus = 'nej' WHERE Tstatus = 'ja'" Conn.Execute(SQL) 'Set den nye kolonne til ja SQL = "UPDATE tabel SET Tstatus = 'ja' WHERE TID = " & id Conn.Execute(SQL) end if %>
Hejsa eagleeye! jeg fik det desværre ikke til at virke men hvis du vil have halvdelen af pointsene da du har brugt tid på spørgsmålet må du lige lægge et svar ind!
det ville faktisk være fedt hvis du kunne svarer på nedenstående hvilket også har noget med gem at gøre! så får du selvfølgelig alle points!
Jeg har et asp hotel som kører med en mysql database - alt virker fint pånær når jeg prøver at gemme med nedenstående side!
---fejl------------------------------------ Microsoft VBScript runtime error '800a01b6'
Object doesn't support this property or method: 'Execute'
/tester/pagecount.asp, line 29
den nye kode er som følger....................
<%@LANGUAGE="VBSCRIPT"%> <!--#include file="Connections/counter.asp" --> <% Dim Con Dim Con_numRows
Set Con = Server.CreateObject("ADODB.Recordset") Con.ActiveConnection = MM_counter_STRING Con.Source = "SELECT * FROM sider" Con.CursorType = 0 Con.CursorLocation = 2 Con.LockType = 1 Con.Open()
Con_numRows = 0 %> <% Function fixQuotes( theString ) fixQuotes = Replace( theString, "'", "''" ) End Function
IP = Request.ServerVariables("REMOTE_ADDR") URL = Request.ServerVariables("URL")
If Session("Reload") <> "" & IP & "," & URL & "" Then Session("Reload") = "" & IP & "," & URL & ""
Sql = "SELECT * FROM sider WHERE URL = '" & URL & "'" Set RS = Con.Execute(Sql) ' **********her sker fejlen*******
If (RS.BOF Or RS.EOF) Then Count = 1 SqlNy = "INSERT INTO sider (URL, Count) VALUES('" & fixQuotes(URL) & "','" & fixQuotes(Count) & "')" Con.Execute(SqlNy) End If
If Not (RS.BOF Or RS.EOF) Then Site = RS("URL") End If
If Site = URL Then Count = RS("Count") + 1 SqlCount = "UPDATE sider SET Count='" & Count & "' WHERE URL = '" & URL & "'" Con.Execute(SqlCount) End If End If
For du kan udføre Execute skal Con være defineret som en connection og den er lige nu defineret som et recordset: Set Con = Server.CreateObject("ADODB.Recordset")
Så enten skal det laves om sådan Con bliver en connection elle laves som så man bruger con.Open istedet for con.Execute så skal man bare huske at lukke det bagefter. Men som koden er bør du lave Recordet om til Connection:
Prøv at rette:
Set Con = Server.CreateObject("ADODB.Recordset") Con.ActiveConnection = MM_counter_STRING Con.Source = "SELECT * FROM sider" Con.CursorType = 0 Con.CursorLocation = 2 Con.LockType = 1 Con.Open()
Til dette:
Set Con = Server.CreateObject("ADODB.Connection") Con.Open = MM_counter_STRING
UPS! jeg skylder dig 75 points! hvordan lægger jeg dem over til dig nu??
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.