07. september 2004 - 12:21Der er
18 kommentarer og 2 løsninger
Include file problem
Jeg vil gerne lave en include(f.eks. <!--#include file="include/site/asp/referencer.asp" -->) hentet fra en DB men det bliver kun skrevet ud som alm. tekst. Filen bliver ikke genereret på siden. Jeg ved godt at det er pga. den rækkefølge serveren genererer ASP koden, men er der nogen har en løsning på dette problem.
thomas_yde>> Der er garanteret noget af det rigtige. Problemet er at dette: <%Server.execute("include/site/asp/referencer.asp")%> bliver hentet fra en db og når siden hvor det hele hentes ud på vises, sker der ingenting. Laver jeg en vis kilde ser koden således ud:
Jeg prøver lige igen :-) Jeg henter noget data fra en database ud på en asp side. Jeg har så lavet en ekstra fil der hedder referencer.asp med nogle form elementer og noget asp kode i. Det der ligger i referencer.asp vil jeg gerne have til at være midt i noget af det alm. tekst(html) jeg henter fra databasen.
Du kan ikke skrive ASP kode i et noget du henter fra databasen, men løsningen hedder replace og split ;). det du skal gøre er at lave en funktions commando i din text i datbasen
Eksempel kan du lave en funktion der hedder include#filname
Funktion kunne så se sådan ud (ved ikke om der findes en bedre/letter metode, men denne er den jeg kender)
<% Function include(text) incArray = Split(text, "include#") If Ubound(incArray) >= 1 then i = 1 Do While i < Ubound(incArray) + 1 incFileName = Split(incArray(i), " ") inc = inc & Server.Execute(incFileName(0)) i = i + 1 Loop End If include = incArray(0) & inc End Function %>
Funktionen skal stå over der hvor du vil udskrive, og du når du udskriver med den skriver du bare include(RS("text"))
Best som man tror det er umuligt kommer der en løsning til hovedet, også kan jeg altså ikke sove. :D
her: <% test = "this is the text wiht aspcommand that i want to try out, the asp command is -> "" [ASPcommand]server.execute(""test.asp"")[/ASPcommand] "" og lidt mere crap for dem der vil ha det ;)"
'Først finder vi lige asp koden, ud fra [command][/command] If inStr(test, "[ASPcommand]") then Stno = inStr(test, "[ASPcommand]") + 12 Slno = inStr(test, "[/ASPcommand]") - Stno command = Mid(test, Stno, Slno)
'Så har vi fundet commandoen, så skal vi ha fundet det text der er før og efter commandoen. det gør vi via split. txtArray = split(test, "[ASPcommand]" & command & "[/ASPcommand]") If Ubound(txtArray) => 1 Then txtFore = txtArray(0) txtBefore = txtArray(1) Else txtFore = txtArray(0) End If
'også er det tid til at udskrive Response.Write txtFore Execute command Response.Write txtBefore Else Response.Write test End if
%>
Den virker dog kun ved første aspcommando, er det godt nok?. ellers må jeg jo lige lave det så den virker ved flere også ;)
Denne virker hos mig iværtfald ;) Håber det kan bruges ;)
Koldy>> Kanon du gider at forsøge så meget, men jeg er lidt lost der. Hvad skal i DB og hvad skal i ASP dokumentet.
Det vil være perfekt hvis du kan lave et eksempel ud fra de oplysninger jeg har givet. At jeg skal have filen referencer.asp inkluderet midt i noget tekst jeg henter fra en DB.
Eks.
Tekst fra DB: "Udfyld venligst nedenstående formular<br><br>(HER SKAL FILEN INKLUDERES!!)<P>Dette er mere tekst fra DB</P>"
ved ikke om det gir mening... prøver lige på en anden måde i db har du følgende stående i cellen text: Udfyld venligst nedenstående formular<br><br>[ASPcommand]Server.Execute("referencer.asp")[/ASPcommand]<P>Dette er mere tekst fra DB</P>
Du har så på forhånd lavet adgang til databasen så sætter du bare test = RS("text") sådan her <% test = RS("text") 'Først finder vi lige asp koden, ud fra [command][/command] If inStr(test, "[ASPcommand]") then Stno = inStr(test, "[ASPcommand]") + 12 Slno = inStr(test, "[/ASPcommand]") - Stno command = Mid(test, Stno, Slno)
'Så har vi fundet commandoen, så skal vi ha fundet det text der er før og efter commandoen. det gør vi via split. txtArray = split(test, "[ASPcommand]" & command & "[/ASPcommand]") If Ubound(txtArray) => 1 Then txtFore = txtArray(0) txtBefore = txtArray(1) Else txtFore = txtArray(0) End If
'også er det tid til at udskrive Response.Write txtFore Execute command Response.Write txtBefore Else Response.Write test End if
yes, men husk det virker kun med den første ASP kommando, eller det vil sige du kan faktisk inden for [ASPcommand][/ASPcommand] smide ligeså meget asp kode du vil, men du kan ikke bruge [ASPcommand][/ASPcommand]mere end en gang i en string, på den her måde..
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.