Avatar billede karstenl Nybegynder
15. august 2005 - 04:15 Der er 6 kommentarer og
1 løsning

asp'en driller

Hey :)

Sidder og nørkler med noget delete/edit cms. halløj.
Men det driller lidt.. det er i EDIT delen det går galt, det den gør er..
Den post jeg vil redigere bliver ikke fornyet i DB'en, men beholder sig selv, og så laver den en ny record/overskriver den ældste skrevne record... ehmm.. eller noget..
kig/prøv/test her:
http://ubc.site-x.dk/ubc_cms/ny_ny/
klik på "Linkmaps" og posterne samt Edit kommer frem.

Har set mig blind på det og kan ikke se hvor fejlen ligger, håber I kan hjælpe.

Har smidt hele balladen op, med ALT.

---------------------
1) linkmaps.asp
---------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<meta http-equiv="Pragma" CONTENT="no-cache">
<link rel="stylesheet" href="../styles/styles.css" type="text/css">

<script>
function content_top(skiftframe) { 
  parent.content_top.location.href=skiftframe
}
</script>
</head>

<body bgcolor="#F2F2F2" rightmargin="0" bottommargin="0" scroll="auto">

<%
Set cn = Server.CreateObject("ADODB.Connection")
OpenString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("../../../db/ubc_db.mdb")
cn.Open OpenString

Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT * FROM tbl_linkmaps ORDER by ID desc", cn

do while not rs.eof
%>


<table border="0" cellpadding="3" cellspacing="0">
<tr>
  <td valign="top" width="8"><img src="../pics/dots/dot.gif"></td>
  <td valign="top"><a href='show_tbl_linkmaps.asp?ID=<% = rs("ID") %>' onclick="content_top('linkmaps_top.asp?ID=<% = rs("ID") %>')" onFocus="this.blur()"><font class="defaultlinks"><% = rs("map") %></font></a></td>
</tr>
</table>

<%
    rs.MoveNext
    loop
rs.close
cn.close

%>
<br>
<br>
</body>
</html>

---------------------
2) edit_linkmaps.asp
---------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<meta http-equiv="Pragma" CONTENT="no-cache">
<title></title>

<script language="javascript">
<!--
function validateForm() {

  // Check map... 
  if (document.ContactForm.map.value == "") {
    alert("Please remember to write:\n\n Map name");
    return false;
  }

  // Check description...
  if (document.ContactForm.description.value == "") {
    alert("Please remember to write:\n\n Description");
    return false;
  }
    // Check pk3...
  if (document.ContactForm.pk3.value == "") {
    alert("Please remember to write:\n\n Map file format");
    return false;
  }
      // Check rank...
  if (document.ContactForm.rank.value == "") {
    alert("Please remember to write:\n\n Rank");
    return false;
  }
      // Check rotation...
  if (document.ContactForm.rotation.value == "") {
    alert("Please remember to write:\n\n Rotation");
    return false;
  }
 
 
  // I-f all is OK, send it...
  return true;
}

// -->
</script>

<script>
function content_top(skiftframe) { 
  parent.content_top.location.href=skiftframe
}
</script>

<link rel="stylesheet" href="../styles/styles.css" type="text/css">
</head>

<body rightmargin="0" bottommargin="0" scroll="auto">

<%
Set cn = Server.CreateObject("ADODB.Connection")
OpenString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("../../../db/ubc_db.mdb")
cn.Mode = adModeReadWrite
cn.Open OpenString

Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT * FROM tbl_linkmaps WHERE ID = " & request("ID"), cn
%>

<form action="edit_linkmaps_update.asp" method="post" onSubmit="return validateForm();" name="ContactForm">

<table border="0" cellpadding="0" cellspacing="0">
<tr>
  <td valign="top" colspan="3">
  <font class="defaulttext">
  Map name:<br>
  <input type="text" name="map" size="66" value="<% = rs("map") %>"><br>
 
  Description:<br> 
  <textarea cols="50" rows="14" name="description" wrap="virtual"><% = rs("description") %></textarea><br></td>
  </tr>
 
  <tr>
  <td valign="top" align="left">
  <font class="defaulttext">
  Map file:<br>
  <input type="text" name="pk3" size="15" value="<% = rs("pk3") %>"></td>
 
  <td valign="top" align="left">
  <font class="defaulttext">
  Rank:<br>
  <input type="text" name="rank" size="15" value="<% = rs("rank") %>"></td>
 
  <td valign="top" align="left">
  <font class="defaulttext">
  Rotation:<br>
  <input type="text" name="rotation" size="15" value="<% = rs("rotation") %>"><br></td>
 
  </tr>
  </td>

  <tr>
  <td valign="top" colspan="3">
  <br>

 
 
  <input value="Update" type="submit" border="0" onclick="content_top('../content_top.asp')" onFocus="this.blur()">


 
</td>
</tr>
</table>
</form>
<%
rs.close
cn.close
%>
</body>
</html>
---------------------
3) edit_linkmaps.asp
---------------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="refresh" content="2; url=linkmaps.asp">
<title>Untitled</title>
<link rel="stylesheet" href="../styles/styles.css" type="text/css">
</head>

<body rightmargin="0" bottommargin="0" scroll="auto">

<%

Const adOpenKeyset = 1
Const adLockOptimistic = 3

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../../db/ubc_db.mdb") & ";UID=;PWD=;"

    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From tbl_linkmaps order by ID"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic


      rs("dato") = now
      rs("map") = Request.form("map")
      rs("description") = Request.form("description")
      rs("pk3") = Request.form("pk3")
      rs("rank") = Request.form("rank")
      rs("rotation") = Request.form("rotation")     
      rs("ipnr") = Request.ServerVariables("REMOTE_ADDR")
      rs("browsertype") = Request.ServerVariables("HTTP_USER_AGENT")

    rs.Update
    rs.Close
    Set rs = Nothing

Conn.Close
set Conn = Nothing
%>
<table border="0" cellpadding="1" cellspacing="0">
<tr>
  <td><font class="defaulttext">The <b>linkmap</b> has now been updated.</font></td>
</tr>
</table>
</body>
</html>
Avatar billede karstenl Nybegynder
15. august 2005 - 04:19 #1
ups..
Den sidste side er:
---------------------
3) edit_linkmaps_update.asp
---------------------
Avatar billede -mundi- Nybegynder
15. august 2005 - 08:02 #2
Du mangler et id i din forespørgsel i edit_linkmaps_update.asp.

strSQL = "Select * From tbl_linkmaps where id = " & replace(request.querystring("id"),"'","''")
Avatar billede -mundi- Nybegynder
15. august 2005 - 08:03 #3
hov,

indsæt :

action="edit_linkmaps_update.asp?id<%=request.querystring("id")%>"
edit_linkmaps.asp
Avatar billede -mundi- Nybegynder
15. august 2005 - 08:04 #4
og der skulle stå.
indsæt :

action="edit_linkmaps_update.asp?id<%=request.querystring("id")%>"

i edit_linkmaps.asp

Det er vist lidt for tidligt
Avatar billede nielle Nybegynder
15. august 2005 - 08:07 #5
I edit_linkmaps_update.asp burde du nok nøjes med at trække den ene række ud som du vil have redigeret. Ellers står recordset'ests interne pointer bare ved den første række og det er så den som bliver opdateret.

Ret:

strSQL = "Select * From tbl_linkmaps order by ID"

- til:

strSQL = "Select * From tbl_linkmaps WHERE UD=" & Request.Form("id")

Samtidigt er det vigtigt at din form i edit_linkmaps.asp sender id'et med når den submittes. Du skal derfor tilføje et hidden-felt i denne med id-værdien:

<input type="hidden" name="id" value="<% =request("ID") %>">

.oOo.

Bortset fra det, så ville jeg til enhver tid anbefale at man bruger en UPDATE SQL-sætning i stedet for et recordset til den slags.
Avatar billede karstenl Nybegynder
15. august 2005 - 15:57 #6
Hejsa

Tak for hjælpen, jeg valgte nielle 's forslag, og det virkede.
Har ikke prøvet -mundi- 's forslag, så skal ikke kunne sige OM dét også virker,
men tak -mundi- :-)

--
Tak nielle :-) - Smid venligst et svar :-)
Avatar billede nielle Nybegynder
15. august 2005 - 19:21 #7
Svar :^)
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