Avatar billede viden Nybegynder
14. oktober 2002 - 11:45 Der er 23 kommentarer

Hvordan gør jeg det?

Hej jeg prøver på at lave en adm. til en nyhedsdel, hvor jeg kan opret, rette og slette.
Jeg har prøvet med flere af de funktioner man kan finde på nette, men det flader altid ud i at, jeg for en masse fejl. (nok fordi jeg ikke forstår programmeringssproget).

Er der nogen der kan hjælpe mig med noget der kan komme til at virke?
Avatar billede criterius.dk Nybegynder
14. oktober 2002 - 12:11 #1
Avatar billede viden Nybegynder
14. oktober 2002 - 12:30 #2
Tak! Jeg vil forsøge om jeg kan gennemskue det
Avatar billede criterius.dk Nybegynder
14. oktober 2002 - 12:31 #3
:)
Avatar billede viden Nybegynder
15. oktober 2002 - 00:20 #4
Nu har jeg prøvet at fumle mig frem til noget og kan nu oprette, men får denne fejl når jeg vil slette:
Microsoft VBScript runtime error '800a01a8'

Object required: ''

/admin/administrator/ret_main.asp, line 18

og koden ser sådan ud:
<!--------#include file="../pro-lag.inc"----->
<!-- #INCLUDE FILE="../brugercheck.inc" -->
<%
'Option Explicit
Dim Conn, DSN, sltid, strSQL, rs
Response.Buffer=True
%>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
connString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../log/adm.mdb")
Connect.Open connString
%>
<%
sltid = Request.Querystring("sltid")

If sltid <> "" Then
  strSQL = "Delete From tabel Where ID = " & Request.Querystring("sltid")
  Conn.Execute(strSQL)
  Response.Redirect ("ret_main.asp")
  Response.Write ("Den valgte menu er nu slettet!")
 
  Else

end if
%>
<html>

<head>
<title>Ret menukortet - ret.asp</title>
<LINK href="../style_test.css" type=text/css rel=stylesheet>
<script language="JavaScript">
function erdusikker() {
  sikker = confirm('Er du helt sikker??? Du kan ikke fortryde dit valg!');
       
  if(sikker == true) {
    return true;
  } else {
    return false;
  }
}
</script>
</head>

<body BACKGROUND="../IMAGES/T.GIF" bgproperties="fixed" topmargin="15">
<%
    If Request.QueryString("Id") = "tom" Then
%>
<%
    ElseIf Request.QueryString("Id") = "" Then
%>


<br><br>
      <div align="center">
        <center>
      <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="650" id="AutoNumber3">
        <tr>
          <td width="150" style="border-bottom: 1px solid #000000" >&nbsp;</td>
          <td width="500" style="border-bottom: 1px solid #000000" ><font face="verdana" size="2">Administration i det valgte område
          = <font color="#FF0000">Frokost menu</font></font></td>
          </tr></table>

        </center>
</div>


   


<div align="center">
  <center>
 
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="650" id="AutoNumber2">
    <tr>
      <td width="150" valign="top"><!---#include file="menu_includ.asp"---></td>
      <td width="500" valign="top">

     
 
<FORM method="get" name="navn" action="ret_main.asp">

     
      <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber3">
        <tr>
          <td width="26" bgcolor="#FFCC66"><p align="center"><b><font face="Verdana" size="1">|&nbsp;RET&nbsp;|</font></b></td>
          <td width="32" bgcolor="#FFCC66"><p align="center"><b><font face="Verdana" size="1">&nbsp;SLET&nbsp;|</font></b></td>
          <td width="325" bgcolor="#FFCC66"><b><font face="Verdana" size="1">TEKST</font></b></td>
          <td width="55" bgcolor="#FFCC66"><b><font face="Verdana" size="1">|&nbsp;PRIS</font></b></td>
          <td width="81" bgcolor="#FFCC66"><b><font face="Verdana" size="1">|&nbsp;ÆNDRING</font></b></td>
        </tr>
    <%   
  Set rs = Connect.Execute("SELECT * FROM " & Request.QueryString("tabel"))
  Do While Not rs.EOF
%> 
        <tr>
          <td width="26"><font face="Verdana" size="1" color="#FFFFFF"><p align="center"><a href="ret.asp?id=<%=rs("ID")%>"><img name="p2" border="0" src="ret.gif" onMouseover="changeImg('ret1.gif', 'p2')" onMouseout="changeImg('ret.gif', 'p2')"></a></font></td>
          <td width="32"><font face="Verdana" size="1" color="#FFFFFF"><p align="center"><%Response.Write "<a href='ret_main.asp?sltid=" & rs("ID") & "' onclick='return(erdusikker())')><img border=0 src=delete.gif></a>"%></font></td>
          <td width="325" valign="top"><b><font face="Verdana" size="1" color="#000000"><%=rs("Navn")%></b><br><%Response.Write rs("Tekst")%></font></td>
          <td width="55" valign="bottom"><font face="Verdana" size="1" color="#000000">kr.&nbsp;<%=rs("Pris")%>,-</font></td>
          <td width="81" valign="bottom"><font face="Verdana" size="1" color="#000000"><p align="center"><%=rs("Dato")%></font></td>
        </tr>
        <tr>
          <td width="519" colspan="5">
          <p align="center"><font style="font-size: 6pt"></font></p><hr color="#FFCC66" width="91%" size="1"></td>
        </tr>
       
<%
rs.MoveNext
loop       
    End if
'        End if
%>

       
      </table>
  </FORM>
      </td>
    </tr>
  </table>
  </center>
</div>
</body>

</html>

Er der nogen der kan gennemskue det???????
Avatar billede viden Nybegynder
15. oktober 2002 - 00:21 #5
Linie 18 =  Conn.Execute(strSQL)
Avatar billede the_bma_man Nybegynder
15. oktober 2002 - 08:29 #6
Du skriver:
Conn.Execute(strSQL)

Men lidt tidligere definerer du din connection til at hedde connect:
Set Connect = Server.CreateObject("ADODB.Connection")

Prøv at rette det til connect.execute(strSQL) - eller kald din connection for conn.
Avatar billede viden Nybegynder
15. oktober 2002 - 09:36 #7
Det hjalp at rette til conn. Nu kan jeg slette, men får så denne fejl:
Response object error 'ASP 0156 : 80004005'

Header Error

/admin/administrator/ret_main.asp, line 19

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.


Linie 19 =  Response.Redirect ("ret_main2.asp")
Avatar billede viden Nybegynder
15. oktober 2002 - 09:53 #8
Linie 19 =  Response.Redirect ("ret_main.asp")
Avatar billede the_bma_man Nybegynder
15. oktober 2002 - 09:59 #9
Dine to includes skriver ikke noget ud, vel?
I det, du laver din første response.write eller bare noget html, bliver http-headerne skrevet - og du kommer så med noget tekst efterfølgende. Og når først dette er sket, kan du ikke rette i http-headerne mere. Og det er faktisk lige akkurrat det, der sker, når man laver en response.redirect.

Så prøv at checke, at du ikke har dannet output endnu.
Avatar billede viden Nybegynder
15. oktober 2002 - 10:07 #10
Jeg har lige prøvet om jeg kunne få rettefunktionen til at virke efter at jeg har rettet til conn., men også her får jeg fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

/admin/administrator/ret.asp, line 109

linie 9 =  Conn.Execute(strSQL)

Hele siden ser sådan ud:


<!--------#include file="../pro-lag.inc"----->
<%
'Option Explicit
Dim Conn, DSN, retid, strSQL, rs, strGammelNyhed, frmRetid, strNyhed, strNavn, VisNyheder
Response.Buffer=Valid
%>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
connString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../log/safarinews.mdb")
Conn.Open connString
%>
<html>
<head>
<title>Ret Menu</title>
</head>

<body background="../images/t.gif" topmargin="15">
<br><br>
      <div align="center">
        <center>
      <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="650" id="AutoNumber3">
        <tr>
          <td width="150" style="border-bottom: 1px solid #000000" >&nbsp;</td>
          <td width="500" style="border-bottom: 1px solid #000000" ><font face="verdana" size="2">Administration i det valgte område
          = <font color="#FF0000">Nyheder</font></font></td>
          </tr></table>

        </center>
</div>

<div align="center">
  <center>
 
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="650" id="AutoNumber2">
    <tr>
      <td width="150" valign="top"><!---#include file="menu_includ.asp"---></td>
      <td width="500">

<%
If Request.Querystring("retid") <> "" Then

  retid = Request.Querystring("retid")

  strSQL ="Select * From News Where ID =" & retid
  Set rs = Conn.Execute("SELECT * FROM " & Request.QueryString("tabel"))


  do while not rs.eof
%>

   
                <FORM method="get" name="rettet" action="rettet.asp">

<div align="center">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="500" id="AutoNumber1">
  <tr>
    <td width="100%" align="left">&nbsp;</td>
  </tr>
  </table>
  </center>
</div>
<div align="center">
  <center>
<table border="0" cellpadding="0" cellspacing="0" width="500" height="106"  bordercolor="#111111" >
  <tr>
    <td width="100" height="25" ><font face="verdana" size="2"><b>&nbsp; Ændret den:</b></font></td>
    <td width="400" height="25" colspan="2" ><INPUT name="Dato" size="40" value="<%=rs("Date")%>"></td>
  </tr>
  <tr>
    <td width="100" height="25" ><font face="verdana" size="2"><b>&nbsp; Overskrift:</b></font></td>
    <td width="400" height="25" colspan="2" ><INPUT name="Navn" size="40" value="<%=rs("Subject")%>"></td>
  </tr>
  <tr>
    <td width="100" height="25" valign="top" ><font face="verdana" size="2"><b>&nbsp; Tekst:</b></font></td>
    <td width="400" height="25" colspan="2" ><textarea rows="4" cols="30"  name="Tekst"><%=rs("Text")%></textarea></td>
  </tr>
  <tr>
    <td width="100" height="25" ><font face="verdana" size="2"><b>&nbsp;</b></font></td>
    <td width="156" height="25" >
<align="center">
    <INPUT type="submit" value="UPDATE" style="font-family: Verdana; font-size: 8pt"></td>
    <td width="244" height="25" >
&nbsp;</td>
  </tr>
  <tr>
      <td width="100">
<align="center">&nbsp;&nbsp;
<input type="hidden" NAME="frmRetid" value="<%Response.Write Request.Querystring("retid")%>">
    </td>
  </tr>
</table>
  </center>
</div>
<INPUT type="hidden"  value="UPDATE"></td>
</FORM><%
  rs.MoveNext
  loop

Elseif Request.Querystring("retid") = "" Then

  frmRetid = Request.Form("frmRetid")

  strDate = Replace(Request.Form("Date"), vbcrlf, "<br>")
  strSubject = Replace(strSubject, "'", "''")
  strText = Replace(Request.Form("Text"), "'", "''")
 
  strSQL = "Update News Set Date='" & strDate & "', Subject= '" & strSubject & "', Text= '" & strText & "' Where ID=" & frmRetid
  Conn.Execute(strSQL)

  Response.Redirect ("rettet.asp")
 
End if
%>
<center>
<p>
<b><a href="ret_main.asp" target="_self"></a></b>
</p>
</center>
</td>
    </tr>
  </table>
  </center>
</div>

</body>
</html>
Avatar billede the_bma_man Nybegynder
15. oktober 2002 - 10:15 #11
Prøv lige at checke dine variabler - at de rent faktisk indeholder data. Det tror jeg ikke de gør.
Du bruger method=get på din form. Det gør, at du skal bruge request.querystring og ikke request.form.
Ellers prøv at rette method=get til method=post
Avatar billede viden Nybegynder
15. oktober 2002 - 10:47 #12
jeg får samme fejl om jeg retter method=get til post eller bruger request.querystring ???
Avatar billede the_bma_man Nybegynder
15. oktober 2002 - 11:13 #13
Så prøv lige at udskrive din SQL inden du kører det
response.write(strSQL)

Der må være en fejl i sql'en
Avatar billede viden Nybegynder
15. oktober 2002 - 13:58 #14
Når jeg ligger: response.write(strSQL) ind får jeg denne oplysning:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

/admin/administrator/ret.asp, line 109
Avatar billede the_bma_man Nybegynder
15. oktober 2002 - 14:37 #15
Så prøv evt. at udkommentere den conn.Execute mens du debugger
Avatar billede viden Nybegynder
15. oktober 2002 - 15:31 #16
hvis jeg udkommentere:  Conn.Execute(strSQL)
får jeg en blank side uden fejlbeskrivelse
Avatar billede the_bma_man Nybegynder
15. oktober 2002 - 15:46 #17
og su har sat en response.write strSQL ind, lige over der, hvor du har udkommenteret din conn.execute(strSQL)?

Hvis ja - så prøve lige at udskrifte din response.buffers = Valid med response.buffers = false
Avatar billede viden Nybegynder
15. oktober 2002 - 16:11 #18
Nu har jeg rettet response.buffers=Valid til False og har odkommenteret  Conn.Execute(strSQL) og indsat response.write(strSQL) lige ovenover.
og får nu denne besked



Update News Set Date='', Subject= '', Text= '' Where ID=
Response object error 'ASP 0156 : 80004005'

Header Error

/admin/administrator/ret.asp, line 111

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content


linie 111=  Response.Redirect ("ret_main.asp")
Avatar billede viden Nybegynder
15. oktober 2002 - 16:12 #19
Hvis jeg udkommentere linie 111 for jeg denne besked:

Update News Set Date='', Subject= '', Text= '' Where ID=
Avatar billede the_bma_man Nybegynder
16. oktober 2002 - 16:33 #20
Pg det tyder jo også kraftigt på, at du ikke har fat i nogen værdier.
Prøv selv lige at se på din sql-sætning - hvordan skal den kunne forstå det? :-)
Avatar billede viden Nybegynder
16. oktober 2002 - 17:11 #21
Jeg har lavet nogle rettelser, men lige lidt hjælper det.
Hvis der er nogen der kan se fejlen i denne side: ret.asp


<!-- #INCLUDE FILE="../brugercheck.inc" -->
<!--------#include file="../pro-lag.inc"----->
<%
'Option Explicit
Dim Conn, DSN, retid, strSQL, rs, frmRetid, strDate, strSubject, strText
Response.Buffer=false
%>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
connString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../log/safarinews.mdb")
Conn.Open connString
%>
<html>
<head>
<title>Ret Menu</title>
</head>

<body background="../images/t.gif" topmargin="15">
<br><br>
      <div align="center">
        <center>
      <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="650" id="AutoNumber3">
        <tr>
          <td width="150" style="border-bottom: 1px solid #000000" >&nbsp;</td>
          <td width="500" style="border-bottom: 1px solid #000000" ><font face="verdana" size="2">Administration i det valgte område
          = <font color="#FF0000">Nyheder</font></font></td>
          </tr></table>

        </center>
</div>

<div align="center">
  <center>
 
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="650" id="AutoNumber2">
    <tr>
      <td width="150" valign="top"><!---#include file="menu_includ.asp"---></td>
      <td width="500">

<%

If Request.Querystring("retid") <> "" Then

  retid = Request.Querystring("retid")

  strSQL ="Select * From News Where ID =" & retid
  Set rs = Conn.Execute(strSQL)

  do while not rs.eof
%>

   
                <FORM method="post" name="ret" action="ret_main.asp">

<div align="center">
  <center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="500" id="AutoNumber1">
  <tr>
    <td width="100%" align="left">&nbsp;</td>
  </tr>
  </table>
  </center>
</div>
<div align="center">
  <center>
<table border="0" cellpadding="0" cellspacing="0" width="500" height="106"  bordercolor="#111111" >
  <tr>
    <td width="100" height="25" ><font face="verdana" size="2"><b>&nbsp; Ændret den:</b></font></td>
    <td width="400" height="25" colspan="2" ><INPUT name="Dato" size="40" value="<%Response.Write rs("Date")%>"></td>
  </tr>
  <tr>
    <td width="100" height="25" ><font face="verdana" size="2"><b>&nbsp; Overskrift:</b></font></td>
    <td width="400" height="25" colspan="2" ><INPUT name="Overskrift" size="40" value="<%Response.Write rs("Subject")%>"></td>
  </tr>
  <tr>
    <td width="100" height="25" valign="top" ><font face="verdana" size="2"><b>&nbsp; Tekst:</b></font></td>
    <td width="400" height="25" colspan="2" ><textarea rows="4" cols="30"  name="Tekst"><%Response.Write rs("Text")%></textarea></td>
  </tr>
  <tr>
    <td width="100" height="25" ><font face="verdana" size="2"><b>&nbsp;</b></font></td>
    <td width="156" height="25" >
<align="center">
    <input type="hidden" NAME="frmRetid" value="<%Response.Write Request.Querystring("retid")%>">
    <INPUT type="submit" value="UPDATE" style="font-family: Verdana; font-size: 8pt"></td>
    <td width="244" height="25" >
&nbsp;</td>
  </tr>
  <tr>
      <td width="100">
<align="center">&nbsp;&nbsp;
    </td>
  </tr>
</table>
  </center>
</div>
</td>
</FORM>
<%
  rs.MoveNext
  loop

Elseif Request.Querystring("retid") = "" Then
  frmRetid = Request.Form("frmRetid")

strDato = Replace(Request.Form("Date"), vbcrlf, "<br>")
  strDato = Replace(strdato, "'", "''")
  strOverskrift = Replace(Request.Form("overskrift"), "'", "''")
  strTekst = Replace(Request.Form("tekst"), "'", "''")
strSQL = "Update News Set Dato='" & strDate & "', Overskrift= '" & strSubject & "', Tekst= '" & strText & "' Where ID=" & frmRetid
 

'response.write(strSQL)
  Conn.Execute(strSQL)

Response.Redirect ("ret_main.asp")
 
End if
%>
</td>
    </tr>
  </table>
  </center>
</div>

</body>
</html>
Avatar billede viden Nybegynder
16. oktober 2002 - 17:19 #22
Fejlen er stadi den samme:
Update News Set Date='', Subject= '', Text= '' Where ID=
Avatar billede the_bma_man Nybegynder
20. oktober 2002 - 03:04 #23
Så er det stadig fordi, din linie med fx.
strDato = Replace(Request.Form("Date"), vbcrlf, "<br>")
ikke returnerer noget. Så er strDato = "" og det giver kuk i dit select/update statement.
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