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"> 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)%>... <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 %>
Annonceindlæg fra DE-CIX
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, "")
12. september 2007 - 13:19
#2
Ok...og hvor i mit script skal den placeres
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.
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
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"> 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%>... <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 %>
12. september 2007 - 14:09
#6
Denne: .Pattern = "<img[>]^*>" skal lige rettes til: .Pattern = "<img[^>]*>"
12. september 2007 - 14:22
#7
billedet bliver stadig vist i News teaseren
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?
12. september 2007 - 14:34
#9
det er i tekst feltet ja <%=tekst%>
12. september 2007 - 15:04
#10
Så burde det fungere - altså inkl. rettelsen fra 12/09-2007 14:09:56
12. september 2007 - 17:02
#11
Microsoft VBScript compilation error '800a0401' Expected end of statement /Default.asp, line 272 Set re = New RegExp() -------------------^
12. september 2007 - 17:25
#12
Prøv med: Set re = New RegExp
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
12. september 2007 - 17:43
#14
Hov det er min skyld. Den skal være: Split(rs("dato")," ")(0)
12. september 2007 - 17:46
#15
det er jo den samme er det ik, eller skal den op i scriptet og hvor
12. september 2007 - 17:47
#16
tekst = re.Replace(tekst, "") tekst = Split(rs("dato")," ")(0)
12. september 2007 - 17:48
#17
eller hvad mener du
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.
12. september 2007 - 18:04
#19
Så virker det, mage tak for hjælpen, smider du ikke lige et svar
12. september 2007 - 18:07
#20
Svar :^)
Kurser inden for grundlæggende programmering