Avatar billede mvk Nybegynder
27. februar 2004 - 09:34 Der er 7 kommentarer og
1 løsning

Update record uden at trykke på knap

jeg vil gerne opdatere mine brugeroplysninger med hvilken dato/tid brugeren loggede på sidst. derfor har jeg lavet et script der ligger mellem min login fil og min index fil.

men jeg ved ikke hvordan jeg får den til at opdatere dato og tid uden at brugeren skal trykke på en knap. pls help
den skal opdatere dato/tid felterne og siden brugeren videre til index.asp

her er min forløbige kode:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="../Connections/gutternes.asp" -->
<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
  MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
End If

' boolean to abort record edit
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Update Record: set variables

If (CStr(Request("MM_update")) = "form1" And CStr(Request("MM_recordId")) <> "") Then

  MM_editConnection = MM_gutternes_STRING
  MM_editTable = "users"
  MM_editColumn = "IDuser"
  MM_recordId = "" + Request.Form("MM_recordId") + ""
  MM_editRedirectUrl = "../index.asp"
  MM_fieldsStr  = "date|value|time|value"
  MM_columnsStr = "LastLogin_Date|',none,''|LastLogin_Time|',none,''"

  ' create the MM_fields and MM_columns arrays
  MM_fields = Split(MM_fieldsStr, "|")
  MM_columns = Split(MM_columnsStr, "|")
 
  ' set the form values
  For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_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 MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
    MM_formVal = MM_fields(MM_i+1)
    MM_typeArray = Split(MM_columns(MM_i+1),",")
    MM_delim = MM_typeArray(0)
    If (MM_delim = "none") Then MM_delim = ""
    MM_altVal = MM_typeArray(1)
    If (MM_altVal = "none") Then MM_altVal = ""
    MM_emptyVal = MM_typeArray(2)
    If (MM_emptyVal = "none") Then MM_emptyVal = ""
    If (MM_formVal = "") Then
      MM_formVal = MM_emptyVal
    Else
      If (MM_altVal <> "") Then
        MM_formVal = MM_altVal
      ElseIf (MM_delim = "'") Then  ' escape quotes
        MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
      Else
        MM_formVal = MM_delim + MM_formVal + MM_delim
      End If
    End If
    If (MM_i <> LBound(MM_fields)) Then
      MM_editQuery = MM_editQuery & ","
    End If
    MM_editQuery = MM_editQuery & MM_columns(MM_i) & " = " & MM_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
%>
<%
Dim rsLastLogin__MMColParam
rsLastLogin__MMColParam = "1"
If (Session("MM_Username") <> "") Then
  rsLastLogin__MMColParam = Session("MM_Username")
End If
%>
<%
Dim rsLastLogin
Dim rsLastLogin_numRows

Set rsLastLogin = Server.CreateObject("ADODB.Recordset")
rsLastLogin.ActiveConnection = MM_gutternes_STRING
rsLastLogin.Source = "SELECT * FROM users WHERE Username = '" + Replace(rsLastLogin__MMColParam, "'", "''") + "'"
rsLastLogin.CursorType = 0
rsLastLogin.CursorLocation = 2
rsLastLogin.LockType = 1
rsLastLogin.Open()

rsLastLogin_numRows = 0
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="POST" action="<%=MM_editAction%>">
  <input name="date" type="hidden" id="date" value="<%= Date() %>">
  <input name="time" type="hidden" id="time" value="<%= Time() %>">
  <input type="hidden" name="MM_update" value="form1">
  <input type="hidden" name="MM_recordId" value="<%= rsLastLogin.Fields.Item("IDuser").Value %>">
</form>
</body>
</html>
<%
rsLastLogin.Close()
Set rsLastLogin = Nothing
%>
Avatar billede pelkjaer Nybegynder
27. februar 2004 - 09:46 #1
Hvis dette er en side så brugerne kommer til efter login, kan du smide dem videre til index med det samme sådan:

<body onload="document.forms[0].submit();">
Avatar billede mvk Nybegynder
27. februar 2004 - 10:26 #2
thankz man - ligger jeg dato og tid forkert i databasen, når jeg skriver dem ud kommer det sådan: 2/27/2004 10:25:46 AM. kan jeg ikke få det vist som:
27-2-2004 10:25
Avatar billede pelkjaer Nybegynder
27. februar 2004 - 10:39 #3
Indsæt flg. i toppen når du trækker ud:
<% Session.LCID = 1030 %>

Alternativt kan du bruge en funktion der giver dig dansk dato format. Vil du også ha tid på, bruger du Time()

<%
function dkDato(datoStr)
  dkDato = Day(datoStr) & "-" & Month(datoStr) & "-" & Year(datoStr)
end function
%>

Og dit hidden felt:

<input name="date" type="hidden" id="date" value="<%=dkDato(date)%>">
Avatar billede mvk Nybegynder
27. februar 2004 - 12:59 #4
super man - tak - smid et svar
jeg skylder dig
.
mht tiden kan jeg så dropper sekunderne ?
Avatar billede mvk Nybegynder
27. februar 2004 - 13:17 #5
kan man egentlig sammenligne dato og tid - så man kunne vise hvor mange timer det er siden sidste login ?
Avatar billede mvk Nybegynder
10. marts 2004 - 09:33 #6
pelkjaer
jeg skylder dig point :)
Avatar billede mvk Nybegynder
30. marts 2004 - 12:06 #7
u there... ?
Avatar billede mvk Nybegynder
09. september 2004 - 11:22 #8
sig til hvis du vil have dem. lukker nu :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester