Avatar billede rille101 Nybegynder
14. februar 2005 - 17:15 Der er 31 kommentarer og
1 løsning

Opdatere post der indeholder bl.a. et billede

Har en tabel (nyheder) der indeholder nogle tekstfelter og så et felt FILE1, der henviser til et billede. Min insert form virker fint, men har lidt problemer med UPDATE formen.
Den skal bestå af fire sider:

1. Master page med alle nyheder, der linker til detail side med opdateringsform
2. Detailside med opdateringsform der opdaterer "overskrift, indhold, forfatter" Når man klikker på knappen Opdater, opdateres de pågældende felter og man sendes videre til næste side.
3. Her ligger en AspSmartUpload-form der uploader billeder og sætter strengen ind i feltet på en post (bruger dog et modul der er beregnet til oprettelse af nye poster)
4. Selve motoren der uploader billedet og indsætter data i felt.

Problemet er at jeg ikke ved om dette overhovedet kan lade sig gøre.

Ved ikke om jeg får ført id'et fra detail siden (2) med over til (3) og ved heller ikke om selve motoren (4) er sat korrekt op.

Jeg poster gerne koderne hvis det er nødvendigt...
Avatar billede and_ Nybegynder
14. februar 2005 - 17:27 #1
Det bliver nok nødvendigt at du poster lidt kode for at kunne hjælpe dig :)
Avatar billede rille101 Nybegynder
14. februar 2005 - 19:32 #2
*****************(side 2)*****************
<%
' *** 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 RSnyheder__MMColParam
RSnyheder__MMColParam = "1"
If (Request.QueryString("id") <> "") Then
  RSnyheder__MMColParam = Request.QueryString("id")
End If
%>
<%
Dim RSnyheder
Dim RSnyheder_numRows

Set RSnyheder = Server.CreateObject("ADODB.Recordset")
RSnyheder.ActiveConnection = MM_connsydvest_STRING
RSnyheder.Source = "SELECT TOP 1 *  FROM nyheder  WHERE id = " + Replace(RSnyheder__MMColParam, "'", "''") + "  ORDER BY id DESC"
RSnyheder.CursorType = 0
RSnyheder.CursorLocation = 2
RSnyheder.LockType = 3
RSnyheder.Open()

RSnyheder_numRows = 0
%>

***og***

<form method="POST" action="<%=MM_editAction%>" name="form1">
        <input name="overskrift" type="text" class="style9" id="overskrift" value="<%=(RSnyheder.Fields.Item("overskrift").Value)%>" size="35" maxlength="35">
        <textarea name="indhold" cols="43" rows="10" class="style4" id="indhold"><%=(RSnyheder.Fields.Item("indhold").Value)%></textarea>
        <input name="forfatter" type="text" class="style9" id="forfatter" value="<%=(RSnyheder.Fields.Item("forfatter").Value)%>" size="32">
        <input name="Button" type="button" onClick="MM_goToURL('parent','intern_ret_nyhed1.asp');return document.MM_returnValue" value="<< Tilbage">
        <input name="Submit" type="submit" class="style10" value="Næste >>">
        <input type="hidden" name="MM_recordId2" value="<%= RSnyheder.Fields.Item("id").Value %>">
      <input type="hidden" name="MM_update" value="form1">
      <input type="hidden" name="MM_recordId" value="<%= RSnyheder.Fields.Item("id").Value %>">
</form>



*****************Side 3*****************
<%
Dim RSnyheder__MMColParam
RSnyheder__MMColParam = "1"
If (Request.QueryString("id") <> "") Then
  RSnyheder__MMColParam = Request.QueryString("id")
End If
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = 5
Repeat1__index = 0
RSnyhedsoversigt_numRows = RSnyhedsoversigt_numRows + Repeat1__numRows
%>
<%
Dim MM_paramName
%>
<%
' *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters

Dim MM_keepNone
Dim MM_keepURL
Dim MM_keepForm
Dim MM_keepBoth

Dim MM_removeList
Dim MM_item
Dim MM_nextItem

' create the list of parameters which should not be maintained
MM_removeList = "&index="
If (MM_paramName <> "") Then
  MM_removeList = MM_removeList & "&" & MM_paramName & "="
End If

MM_keepURL=""
MM_keepForm=""
MM_keepBoth=""
MM_keepNone=""

' add the URL parameters to the MM_keepURL string
For Each MM_item In Request.QueryString
  MM_nextItem = "&" & MM_item & "="
  If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
    MM_keepURL = MM_keepURL & MM_nextItem & Server.URLencode(Request.QueryString(MM_item))
  End If
Next

' add the Form variables to the MM_keepForm string
For Each MM_item In Request.Form
  MM_nextItem = "&" & MM_item & "="
  If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
    MM_keepForm = MM_keepForm & MM_nextItem & Server.URLencode(Request.Form(MM_item))
  End If
Next

' create the Form + URL string and remove the intial '&' from each of the strings
MM_keepBoth = MM_keepURL & MM_keepForm
If (MM_keepBoth <> "") Then
  MM_keepBoth = Right(MM_keepBoth, Len(MM_keepBoth) - 1)
End If
If (MM_keepURL <> "")  Then
  MM_keepURL  = Right(MM_keepURL, Len(MM_keepURL) - 1)
End If
If (MM_keepForm <> "") Then
  MM_keepForm = Right(MM_keepForm, Len(MM_keepForm) - 1)
End If

' a utility function used for adding additional parameters to these strings
Function MM_joinChar(firstItem)
  If (firstItem <> "") Then
    MM_joinChar = "&"
  Else
    MM_joinChar = ""
  End If
End Function
%>

***og***

<form method="post" action="intern_ret_nyhed4.asp?id=" ENCTYPE="multipart/form-data">
            <input name="FILE1" type="FILE" id="FILE1" size="30">
            <input type="submit" value="Indsæt >>">         
      </form>



*****************Side 4*****************

<% Response.Buffer = True %>
<html>
<title>Indsætte data i databasen</title>
<head>
</head>
<body>
<%
Dim RSnyheder__MMColParam
RSnyheder__MMColParam = "1"
If (Request.QueryString("id") <> "") Then
  RSnyheder__MMColParam = Request.QueryString("id")
End If
%>
<%
'  Variables
'  *********
  Dim mySmartUpload
  Dim file
  Dim intCount
  intCount=0
       
'  Object creation
'  ***************
  Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")

'  Upload
'  ******
  mySmartUpload.Upload


'  Select each file
'  ****************
  For each file In mySmartUpload.Files
  '  Only if the file exist
  '  **********************
      If not file.IsMissing Then
      '  Save the files with his original names in a virtual path of the web server
      '  ****************************************************************************
       
        file.SaveAs("images/nyhederimages/" & file.FileName)
        ' sample with a physical path
        'file.SaveAs("e:\Billeder\" & file.FileName)

' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db/fcsydvest.mdb")
Conn.Open DSN

'Tilføjer brugeren til databasen
    Set rs = Server.CreateObject("ADODB.Recordset")
    strSQL = "SELECT FILE1 from nyheder WHERE id = " + Replace(RSnyheder__MMColParam, "'", "''") + ""
    rs.Open strsql, conn, 1, 3

'Tilføjer brugeren til databasen og sender ham/hende til login siden
    rs.Addnew
    rs("FILE1") = "images/nyhederimages/" & file.FileName

    rs.update

        intCount = intCount + 1

End If
'  Display the number of files which could be uploaded
'  ***************************************************
  Response.Write("<BR>" & mySmartUpload.Files.Count & " file(r) kunne blive uploaded.<BR>")

'  Display the number of files uploaded
'  ************************************
  Response.Write(intCount & " file(r) uploaded.<BR>")
Next
response.Redirect("/intern_ret_nyhed5.asp")
%>
</body>
</html>


Side 2 og 3 har jeg klippet i, så der kun vises de relevante koder.
Side 4 er komplet.

Håber det giver lidt klarhed over situationen?!
Avatar billede and_ Nybegynder
15. februar 2005 - 01:03 #3
Du skal huske at sende id'en med i adresselinien.

action="intern_ret_nyhed4.asp?id=<%=RSnyheder__MMColParam%>"
Avatar billede rille101 Nybegynder
15. februar 2005 - 11:34 #4
Det går galt på side 2 allerede.

For på side to, hvor jeg har min første form ser action således ud:
<form method="POST" action="<%=MM_editAction%>" name="form1">



Her er den eneste kode på side 2, der indeholder noget med MM_EditAction:

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_connsydvest_STRING
  MM_editTable = "nyheder"
  MM_editColumn = "id"
  MM_recordId = "" + Request.Form("MM_recordId") + ""
  MM_editRedirectUrl = "intern_ret_nyhed3.asp"
  MM_fieldsStr  = "overskrift|value|indhold|value|forfatter|value"
  MM_columnsStr = "overskrift|',none,''|indhold|',none,''|forfatter|',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
%>

Har prøvet at sætte
MM_editRedirectUrl = "intern_ret_nyhed3.asp?id=<%=RSnyheder__MMColParam%>"

i den originale linje: MM_editRedirectUrl = "intern_ret_nyhed3.asp"

Men det virker ikke. Får denne fejl:

Microsoft VBScript compilation error '800a0409'
Unterminated string constant
/intern_ret_nyhed2.asp, line 53
MM_editRedirectUrl = "intern_ret_nyhed3.asp?id=<%=RSnyheder__MMColParam
Avatar billede and_ Nybegynder
15. februar 2005 - 11:38 #5
fordi ikke kan bruge kode start/slut i strings:

MM_editRedirectUrl = "intern_ret_nyhed3.asp?id=<%=RSnyheder__MMColParam
skal være:
MM_editRedirectUrl = "intern_ret_nyhed3.asp?id=" & RSnyheder__MMColParam

Hvordan ser action-propertyen ud på side2, når du siger vis kilde? har du evt. et link?
Avatar billede rille101 Nybegynder
15. februar 2005 - 12:35 #6
Ja har et link. Fjerner lige login sessionen på siderne så du kan få adgang til dem. www.fcsydvest.dk/intern_ret_nyhed2.asp

Andre sider er
intern_ret_nyhed1.asp
intern_ret_nyhed3.asp
intern_ret_nyhed4.asp
intern_ret_nyhed5.asp (side 5 er bare en kvittering uden nogen interessant kode)

Ok har ændre editRedirectUrl og nu kommer jeg ihvertfald videre til intern_ret_nyhed3.asp    Nu er det så her (side4) den vrøvler.

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'id = , 41'.
/intern_ret_nyhed4.asp, line 53

(ved dog stadig ikke om intern_ret_nyhed3.asp ved at den har modtaget en streng fra side 2)
Avatar billede and_ Nybegynder
15. februar 2005 - 12:41 #7
På side3 får du hevet værdien forkert: action="intern_ret_nyhed4.asp?id=, 41"

den laver ", 41" hvor den skulle have været 41
Hvordan ser koden ud for formtagget?
Avatar billede rille101 Nybegynder
15. februar 2005 - 12:57 #8
Fortagget ser således ud:
Det kunne godt se ud som om der ligger en rest fra nogle tidligere forsøg, som jeg ikke har fået ryddet op i...

<form method="post" action="intern_ret_nyhed4.asp?id=<%=RSnyheder__MMColParam%>" ENCTYPE="multipart/form-data">
Avatar billede and_ Nybegynder
15. februar 2005 - 13:00 #9
Umiddelbart ser det jo rigtigt ud, men prøv at lave noget i denne retning istedet:

<form method="post" action="intern_ret_nyhed4.asp?id=<%=request.querystring("id")%>" ENCTYPE="multipart/form-data">
Avatar billede rille101 Nybegynder
15. februar 2005 - 13:13 #10
Hmm Det reagerede den desværre ikke på. Får den samme fejl. Skal man bruge et eller andet med "KeepNone" funktionen eller sådan noget???
Avatar billede and_ Nybegynder
15. februar 2005 - 13:15 #12
dumb lige hele den nuværende kode for side3. Der er et eller andet galt med den!
Avatar billede and_ Nybegynder
15. februar 2005 - 13:16 #13
Side3 har en adresse: intern_ret_nyhed3.asp?id=&id=41
Den laver id 2 gange.. Derfor den ikke kan finde ud af det :p
Avatar billede and_ Nybegynder
15. februar 2005 - 13:18 #14
Som du kan se her, bliver koden "url-encoded"

http://www.fcsydvest.dk/intern_ret_nyhed3.asp?id=&id=41
http://www.fcsydvest.dk/intern_ret_nyhed4.asp?id=,%2041

Der er en fejl i den måde, som du laver formtagget på side 2
Avatar billede rille101 Nybegynder
15. februar 2005 - 13:27 #15
Dette er koden for side 3:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Dim RSnyheder__MMColParam
RSnyheder__MMColParam = "1"
If (Request.QueryString("id") <> "") Then
  RSnyheder__MMColParam = Request.QueryString("id")
End If
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = 5
Repeat1__index = 0
RSnyhedsoversigt_numRows = RSnyhedsoversigt_numRows + Repeat1__numRows
%>
<%
Dim MM_paramName
%>
<%
' *** Go To Record and Move To Record: create strings for maintaining URL and Form parameters

Dim MM_keepNone
Dim MM_keepURL
Dim MM_keepForm
Dim MM_keepBoth

Dim MM_removeList
Dim MM_item
Dim MM_nextItem

' create the list of parameters which should not be maintained
MM_removeList = "&index="
If (MM_paramName <> "") Then
  MM_removeList = MM_removeList & "&" & MM_paramName & "="
End If

MM_keepURL=""
MM_keepForm=""
MM_keepBoth=""
MM_keepNone=""

' add the URL parameters to the MM_keepURL string
For Each MM_item In Request.QueryString
  MM_nextItem = "&" & MM_item & "="
  If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
    MM_keepURL = MM_keepURL & MM_nextItem & Server.URLencode(Request.QueryString(MM_item))
  End If
Next

' add the Form variables to the MM_keepForm string
For Each MM_item In Request.Form
  MM_nextItem = "&" & MM_item & "="
  If (InStr(1,MM_removeList,MM_nextItem,1) = 0) Then
    MM_keepForm = MM_keepForm & MM_nextItem & Server.URLencode(Request.Form(MM_item))
  End If
Next

' create the Form + URL string and remove the intial '&' from each of the strings
MM_keepBoth = MM_keepURL & MM_keepForm
If (MM_keepBoth <> "") Then
  MM_keepBoth = Right(MM_keepBoth, Len(MM_keepBoth) - 1)
End If
If (MM_keepURL <> "")  Then
  MM_keepURL  = Right(MM_keepURL, Len(MM_keepURL) - 1)
End If
If (MM_keepForm <> "") Then
  MM_keepForm = Right(MM_keepForm, Len(MM_keepForm) - 1)
End If

' a utility function used for adding additional parameters to these strings
Function MM_joinChar(firstItem)
  If (firstItem <> "") Then
    MM_joinChar = "&"
  Else
    MM_joinChar = ""
  End If
End Function
%>

I body'en er så denne form:


<form method="post" action="intern_ret_nyhed4.asp?id=<%=request.querystring("id")%>" ENCTYPE="multipart/form-data">
      <input name="FILE1" type="FILE" id="FILE1" size="30">
      <input type="submit" value="Indsæt >>">
      <input name="Fuldfoer" type="button" id="Fuldfoer" onClick="MM_goToURL('parent','intern_ret_nyhed5.asp');return document.MM_returnValue" value="Fuldfør">
      </form>


Kigger lige lidt på side 2...
Avatar billede and_ Nybegynder
15. februar 2005 - 13:30 #16
vil også gerne lige have side2 :p
Avatar billede rille101 Nybegynder
15. februar 2005 - 13:35 #17
Ålleright her er side 2 :D

Denne side er genereret af Dreamweaver (Record Update Form Wizard)

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/connsydvest.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_connsydvest_STRING
  MM_editTable = "nyheder"
  MM_editColumn = "id"
  MM_recordId = "" + Request.Form("MM_recordId") + ""
  MM_editRedirectUrl = "intern_ret_nyhed3.asp" & RSnyheder__MMColParam
  MM_fieldsStr  = "overskrift|value|indhold|value|forfatter|value"
  MM_columnsStr = "overskrift|',none,''|indhold|',none,''|forfatter|',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 RSnyheder__MMColParam
RSnyheder__MMColParam = "1"
If (Request.QueryString("id") <> "") Then
  RSnyheder__MMColParam = Request.QueryString("id")
End If
%>
<%
Dim RSnyheder
Dim RSnyheder_numRows

Set RSnyheder = Server.CreateObject("ADODB.Recordset")
RSnyheder.ActiveConnection = MM_connsydvest_STRING
RSnyheder.Source = "SELECT TOP 1 *  FROM nyheder  WHERE id = " + Replace(RSnyheder__MMColParam, "'", "''") + "  ORDER BY id DESC"
RSnyheder.CursorType = 0
RSnyheder.CursorLocation = 2
RSnyheder.LockType = 3
RSnyheder.Open()

RSnyheder_numRows = 0
%>



Body'en indeholder formen:


<form method="POST" action="<%=MM_editAction%>" name="form1">
  <input name="overskrift" type="text" class="style9" id="overskrift" value="<%=(RSnyheder.Fields.Item("overskrift").Value)%>" size="35" maxlength="35">
  <textarea name="indhold" cols="43" rows="10" class="style4" id="indhold"><%=(RSnyheder.Fields.Item("indhold").Value)%></textarea>
  <input name="forfatter" type="text" class="style9" id="forfatter" value="<%=(RSnyheder.Fields.Item("forfatter").Value)%>" size="32">
  <input name="Button" type="button" onClick="MM_goToURL('parent','intern_ret_nyhed1.asp');return document.MM_returnValue" value="<< Tilbage">
  <input name="Submit" type="submit" class="style10" value="Næste >>">
  <input type="hidden" name="MM_recordId2" value="<%= RSnyheder.Fields.Item("id").Value %>">
  <input type="hidden" name="MM_update" value="form1">
  <input type="hidden" name="MM_recordId" value="<%= RSnyheder.Fields.Item("id").Value %>">
</form>
Avatar billede and_ Nybegynder
15. februar 2005 - 13:51 #18
hvad nu hvis vi skodder DW's kode og laver vores egen...

I alle <form tag på alle sider (2 og 3), slet så der står:

side1: <a href="intern_ret_nyhed2.asp?artikelid=41&id=41" class="style1">

Side2: action="intern_ret_nyhed2.asp?artikelid=<%=request.querystring("artikelid")%>&id=<%=RSnyheder__MMColParam%>"

Side3: action="intern_ret_nyhed2.asp?artikelid=<%=request.querystring("artikelid")%>&id=<%=RSnyheder__MMColParam%>"

Ved godt at vi prøver med dobbelværdier nu, men DW laver et eller sjovt med koden på side2, så vi prøver lige at lave vores egen
Avatar billede rille101 Nybegynder
15. februar 2005 - 15:02 #19
Nu kører den hele turen igennem, dog opretter den en ny post, hvor alle felter pånær "FILE1" der indeholder billedet er tomme.

På side 4 har jeg bl.a. denne kode:

'Tilføjer brugeren til databasen
    Set rs = Server.CreateObject("ADODB.Recordset")
    strSQL = "SELECT FILE1 from nyheder WHERE id = " + Replace(RSnyheder__MMColParam, "'", "''") + ""
    rs.Open strsql, conn, 1, 3

'Tilføjer brugeren til databasen og sender ham/hende til login siden
    rs.Addnew
    rs("FILE1") = "images/nyhederimages/" & file.FileName

    rs.update

        intCount = intCount + 1


Hele koden for side 4 kan ses i 14/02-2005 19:32:19 (nederste del)
Avatar billede and_ Nybegynder
15. februar 2005 - 15:15 #20
hhhmmm.... som jeg forstår er det fordi at den opretter en ny række istedet for at opdatere den række du arbejder med...

Det er pga. at du har rs.addnew med... Så laver den en ny række....

Fjern rs.addnew, så opdaterer den kun rækken, men du kan også bygge det hele ind i sql'en:

'Tilføjer brugeren til databasen
Set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "update nyheder set FILE1 = " & "images/nyhederimages/" & file.FileName & " WHERE id = " & Replace(RSnyheder__MMColParam, "'", "''")
rs.Open strsql, conn, 1, 3

Denne her skulle klare det hele på en gang.... :p
Avatar billede and_ Nybegynder
15. februar 2005 - 15:15 #21
sorry:

'Tilføjer brugeren til databasen
Set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "update nyheder set FILE1 = '" & "images/nyhederimages/" & file.FileName & "' WHERE id = " & Replace(RSnyheder__MMColParam, "'", "''")
rs.Open strsql, conn, 1, 3
Avatar billede rille101 Nybegynder
15. februar 2005 - 15:30 #22
Nu har jeg indsat strengen fra 15/02-2005 15:15:55. Når jeg så fjerner rs.Addnew får jeg denne fejl

ADODB.Recordset error '800a0cc1'
Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.
/intern_ret_nyhed4.asp, line 56

55    'Tilføjer brugeren til databasen og sender ham/hende til login siden
56        rs("FILE1") = "images/nyhederimages/" & file.FileName
57   
58          rs.update
59
60          intCount = intCount + 1
61 
62    End If


Har også prøvet at fjerne linje 55-62 men det resulterer også i fejl...
Avatar billede rille101 Nybegynder
15. februar 2005 - 15:32 #23
MEN ELLERS VIRKER DET...........

Så er det bare lige om vi kan slipe af med den fejlmelding....
Avatar billede and_ Nybegynder
15. februar 2005 - 15:37 #24
Hvilken sql kører du med?

Min sql
'Tilføjer brugeren til databasen
Set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "update nyheder set FILE1 = '" & "images/nyhederimages/" & file.FileName & "' WHERE id = " & Replace(RSnyheder__MMColParam, "'", "''")
rs.Open strsql, conn, 1, 3

Din sql:

'Tilføjer brugeren til databasen
Set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT FILE1 from nyheder WHERE id = " & Replace(RSnyheder__MMColParam, "'", "''")
    rs.Open strsql, conn, 1, 3

    'Hvis du "select" i sql'en, skal du bruge nedenstående:
    rs("FILE1") = "images/nyhederimages/" & file.FileName
    rs.update
    intCount = intCount + 1
Avatar billede and_ Nybegynder
15. februar 2005 - 15:38 #25
Du skal KUN bruge dette:

55    'Tilføjer brugeren til databasen og sender ham/hende til login siden
56        rs("FILE1") = "images/nyhederimages/" & file.FileName
57   
58          rs.update
59
60          intCount = intCount + 1
61 
62    End If

Hvis du bruger "select" i sql'en... Ellers skal de bare fjernes
Avatar billede rille101 Nybegynder
15. februar 2005 - 15:41 #26
Så nu fik jeg det sidste hen. Det virker bare perfekt... Smider du et svar?!
Avatar billede and_ Nybegynder
15. februar 2005 - 15:45 #27
svar :p

husk at ligge sikkerhed på igen, så man ikke kan gå ind og rette...
Avatar billede rille101 Nybegynder
15. februar 2005 - 15:48 #28
Jeps det har jeg gjort... Du kom til at give dit svar som en kommentar. Prøv lige igen :)  Og tak for hjælpen!!!
Avatar billede and_ Nybegynder
15. februar 2005 - 16:42 #29
svar... mistede lige forbindelsen :p
Avatar billede and_ Nybegynder
15. februar 2005 - 16:43 #30
og det er bare iorden.. er her jo for at hjælpe... Men det blev da en halvlang tråd hehe
Avatar billede rille101 Nybegynder
15. februar 2005 - 17:42 #31
Ja det gjorde det faktisk :)
Avatar billede and_ Nybegynder
15. februar 2005 - 17:46 #32
takker for points..
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