04. marts 2002 - 23:23Der er
9 kommentarer og 1 løsning
automatisk <br>
Jeg har været lidt rundt på diverse forums og spurgt efter noget asp, som kan lave ”enter” til automatisk <br> i en form med metode "POST" Jeg har fået nogle koder men aner ikke hvor jeg skal sætte dem ind henne, er der nogen som du kan overskue og har en løsning på hvordan, så må I meget gerne lave en hel side med alle asp’en som viker.
Når man gemmer og henter felter, der indeholder linieskift skal man gemme dem i databasen med linieskift og først når man ønsker at vise indholdet skal man anvende kommandoen Replace. Hvis du henter teksten frem fra databse skal det se således ud:
<%do while NOT RS.EOF text = RS("mellemrubrik") ' Hent teksten text = replace(text,vbcrLF,"<br>") ' Konverter linieskift til html-kode Response.Write text ' Udskriv teksten RS.MoveNext loop %>
Hvis du derimod modtager teksten fra en form (metod="post") og vil vise den skal du gøre således:
text = Request.form("mellemrubrik") ' Hent teksten for forrige form text = replace(text,vbcrLF,"<br>") ' Konverter linieskift til html-kode Response.Write text ' Udskriv teksten
Ok, tak. Men det er stadigvæk en lille smugle problemer. Ja det er fra en form til en database. Og senere skal informationer fra databasen ud på nogle udvalgte asp sidder
<%do while NOT RS.EOF text = RS("mellemrubrik") text = replace(text,vbcrLF,"<br>") Response.Write text RS.MoveNext loop %>
Hvis jeg sætter dine koder før <%=RS("mellemrubrik")%> på change siden (til data databasen) og på den asp side (som senere skal modtage fra databasen) får jeg denne besked:
ADODB.Field error '80020009'
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/htdoc/asptest/database/change.asp, line 0
Hivis jeg sætter det bagefter <%=RS("mellemrubrik")%> får jeg denne:
Microsoft VBScript runtime error '800a005e' Invalid use of Null: 'replace' /htdoc/asptest/asp/instituttet_hvor.asp, line 44
Okay, nu virker det. Det var fordi jeg troede at det skulle indsættes på change siden som skal indsætte dataer ind. Men det skal jo kun stå på den side som modtager dater.
Men nu der er kun én ting tilbage.
Den vil kun udskrive en rubrik og der er tre forskellige kolonner der skal udskrives.
<% Set Con = Server.CreateObject("ADODB.Connection") DBPath = "DBQ=" & server.mappath("../database/database.mdb") Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath %>
<%do while NOT RS.EOF text1 = RS("overskrift") text1 = replace(text1,vbcrLF,"<br>") Response.Write text1 RS.MoveNext loop%>
<%do while NOT RS.EOF text2 = RS("mellemrubrik") text2 = replace(text2,vbcrLF,"<br>") Response.Write text2 RS.MoveNext Loop%>
<%do while NOT RS.EOF text3 = RS("tekst") text3 = replace(text3,vbcrLF,"<br>") Response.Write text3 RS.MoveNext loop%>
Hvis denne udskrivningsform er korrekt så mangler du en MoveFirst-kommando.
<%RS.MoveFirst ' Skal være på alle do while NOT RS.EOF text2 = RS("mellemrubrik") text2 = replace(text2,vbcrLF,"<br>") Response.Write text2 RS.MoveNext Loop%>
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.