Avatar billede cdc Novice
12. september 2007 - 12:11 Der er 19 kommentarer og
1 løsning

Slette <img> tag fra texten hentet fra DB

Når jeg skriver en nyhed i admin modulet smider jeg et link til et billed ind: <img border="0" src="images/test.jpg" width="470" align="center">
Når jeg bruger nedenstående script kommer billedet ind på nyhedsteaseren. og det er ikke meningen.
Kan man i scriptet få slettet img. tagget?

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & server.mappath("../database/xxxxDB.mdb")
Conn.Open DSN

strSQL = "Select top 3 * From nyheder Order By id Desc"

Set rs = Conn.Execute(strSQL)
%>
              <tr>
                <td width="20"></td>
                <td width="518">
                  <hr size="1" color="#008000">
                </td>
              </tr>
              <tr>
                <td width="538" class="topText" valign="middle" align="left" colspan="2"><img border="0" src="image/no1_list.gif" width="7" height="12">&nbsp;
                  Seneste nyheder:</td>
              </tr>
              <tr>
                <td width="20"></td>
                                <td align="left">
                <%
                bgskift=0
                do while not RS.EOF
                      bgskift=bgskift + 1

                    if bgskift = 2 then
                    bgskift = 0
                end if

                    if bgskift = 0 then
                    color="bgcolor=''"
                    else
                  color="bgcolor=''"
                end if
              %>
                <table border="0" width="100%" cellspacing="0" cellpadding="0">
                    <tr>
                      <td width="70%" align="left" style="padding-top: 5px; padding-bottom: 3px"><b><%=Left(RS("overskrift"),200)%>.</font></b></td>
                      <td width="30%" align="right" style="padding-top: 5px; padding-bottom: 3px;"><%=Split(RS("dato")," ")(0)%></td>
                    </tr>
                    <tr>
                      <td width="100%" colspan="2" align="left" style="padding-top: 5px; padding-bottom: 3px;"><%=Left(RS("tekst"),150)%>...&nbsp;&nbsp;
                      <img border="0" src="image/red_pil.gif"><a href="news/default.asp?id=<%=RS("id")%>" title="" "<%=RS("overskrift")%>""">  Læs mere</a></td>
                    </tr>
                  </table>
                                <%
RS.MoveNext
loop
%>
<%
conn.Close
Set conn = nothing
Set SQLstmt = nothing
%>
Avatar billede nielle Nybegynder
12. september 2007 - 13:11 #1
Sletningen kan f.eks. gøres igennem en RegExp:

Dim re

Set re = New RegExp()
With re
    .IgnoreCase = True
    .Global = True
    .Pattern = "<img[>]^*>"
End With

nyTekst = re.Replace(gammelTekst, "")
Avatar billede cdc Novice
12. september 2007 - 13:19 #2
Ok...og hvor i mit script skal den placeres
Avatar billede nielle Nybegynder
12. september 2007 - 13:21 #3
Du udtrækker teksten et eller andet sted, og lige nu udskriver du den. I stedet for at udskrtive den, skal du gemme den i variablen gammelTekst, køre den igennem koden og så udskrive værdien af nyTekst.
Avatar billede cdc Novice
12. september 2007 - 13:34 #4
jeg er ikke en haj til asp, er kun til hobby brug, og dette ligger over min viden og kunnen
Avatar billede nielle Nybegynder
12. september 2007 - 14:09 #5
Nogenlunde sådan her:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../database/xxxxDB.mdb")
Conn.Open DSN

strSQL = "SELECT TOP 3 * FROM nyheder ORDER BY id DESC"

Set rs = Conn.Execute(strSQL)
%>
              <tr>
                <td width="20"></td>
                <td width="518">
                  <hr size="1" color="#008000">
                </td>
              </tr>
              <tr>
                <td width="538" class="topText" valign="middle" align="left" colspan="2"><img border="0" src="image/no1_list.gif" width="7" height="12">&nbsp;
                  Seneste nyheder:</td>
              </tr>
              <tr>
                <td width="20"></td>
                                <td align="left">
<%
Dim re

Set re = New RegExp()
With re
    .IgnoreCase = True
    .Global = True
    .Pattern = "<img[>]^*>"
End With

bgskift = 0
Do While Not rs.EOF
    bgskift = bgskift + 1

    If bgskift = 2 Then
        bgskift = 0
    End If

    If bgskift = 0 Then
        color = "bgcolor=''"
    Else
        color = "bgcolor=''"
    End If

    tekst = RS("tekst")
    tekst = re.Replace(tekst, "")
    tekst = Left(tekst, 150)
%>
                <table border="0" width="100%" cellspacing="0" cellpadding="0">
                    <tr>
                      <td width="70%" align="left" style="padding-top: 5px; padding-bottom: 3px"><b><%=Left(rs("overskrift"),200)%>.</font></b></td>
                      <td width="30%" align="right" style="padding-top: 5px; padding-bottom: 3px;"><%=Split(re("dato")," ")(0)%></td>
                    </tr>
                    <tr>
                      <td width="100%" colspan="2" align="left" style="padding-top: 5px; padding-bottom: 3px;"><%=tekst%>...&nbsp;&nbsp;
                      <img border="0" src="image/red_pil.gif"><a href="news/default.asp?id=<%=rs("id")%>" title="" "<%=rs("overskrift")%>""">  Læs mere</a></td>
                    </tr>
                  </table>
<%
    rs.MoveNext
Loop

Conn.Close
Set Conn = Nothing
%>
Avatar billede nielle Nybegynder
12. september 2007 - 14:09 #6
Denne:

.Pattern = "<img[>]^*>"

skal lige rettes til:

.Pattern = "<img[^>]*>"
Avatar billede cdc Novice
12. september 2007 - 14:22 #7
billedet bliver stadig vist i News teaseren
Avatar billede nielle Nybegynder
12. september 2007 - 14:32 #8
Hvilket et af felterne drejer det sig om? Jeg har antaget at det var telst-feltet den skulle fjernes fra, men det er måske ikke rigtigt?
Avatar billede cdc Novice
12. september 2007 - 14:34 #9
det er i tekst feltet ja <%=tekst%>
Avatar billede nielle Nybegynder
12. september 2007 - 15:04 #10
Så burde det fungere - altså inkl. rettelsen fra 12/09-2007 14:09:56
Avatar billede cdc Novice
12. september 2007 - 17:02 #11
Microsoft VBScript compilation error '800a0401'

Expected end of statement

/Default.asp, line 272

Set re = New RegExp()
-------------------^
Avatar billede nielle Nybegynder
12. september 2007 - 17:25 #12
Prøv med:

Set re = New RegExp
Avatar billede cdc Novice
12. september 2007 - 17:40 #13
Microsoft VBScript runtime error '800a01b6'

Object doesn't support this property or method

/Default.asp, line 300

%=Split(re("dato")," ")(0)%> denne virker når jeg bruger den gamle version
Avatar billede nielle Nybegynder
12. september 2007 - 17:43 #14
Hov det er min skyld. Den skal være:

Split(rs("dato")," ")(0)
Avatar billede cdc Novice
12. september 2007 - 17:46 #15
det er jo den samme er det ik, eller skal den op i scriptet og hvor
Avatar billede cdc Novice
12. september 2007 - 17:47 #16
tekst = re.Replace(tekst, "")
tekst = Split(rs("dato")," ")(0)
Avatar billede cdc Novice
12. september 2007 - 17:48 #17
eller hvad mener du
Avatar billede nielle Nybegynder
12. september 2007 - 17:51 #18
Nej det er ikke det samme:

Split(re("dato")," ")(0)

ændres til:

Split(rs("dato")," ")(0)

Det var desværre mig som er kommet til at omdøbe "rs" til "re" ved et uheld. :^(

Du har kun Split() et sted i din kode og det er der den skal rettes.
Avatar billede cdc Novice
12. september 2007 - 18:04 #19
Så virker det, mage tak for hjælpen, smider du ikke lige et svar
Avatar billede nielle Nybegynder
12. september 2007 - 18:07 #20
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