Avatar billede goose Nybegynder
08. december 2003 - 17:37 Der er 14 kommentarer og
2 løsninger

Include og/eller server.execute

Jeg er gået lidt død her og har brug for lidt hjælp.
Jeg har et cms system, hvem har efterhånden ikke det.
Jeg skriver f.eks. en tekst i min editor, og et eller andet sted i teksten vil jeg så gerne have indsat et kontaktskema. Jeg skriver nu teksten $$$kontakt$$$ og gemmer dokumentet. Så langt så godt.

Når så brugeren henter siden, så henter jeg indholdet fra databasen med rs("content").
Hvis så content indeholder $$$kontakt$$$ skal den indsætte en kontaktformular istedet for, altså en replace, men hvordan hulen får jeg den til det ?!?
Jeg har kontaktformularen til at ligge i en fil kontakt.asp, en ren tabelopsætning, som jeg så gerne vil have includeret på den plads hvor $$$kontakt$$$ stod.

Jeg har prøvet med:
content = rs("content")
content = replace(content, "$$$kontakt$$$", <!--#include file="kontakt.asp"--> ), men det var jo en smule naivt, er der en der kan give en hånd med ? evt .til noget alternativt ?

/Goose
Avatar billede csslover Nybegynder
08. december 2003 - 17:55 #1
<%
Sub insertKontaktSkema()
%>
<!--#include file="kontakt.asp"-->
<%
End Sub

'---

content = rs("content")
content = replace(content, "$$$kontakt$$$",insertKontaktSkema),

%>

kan det ikke gøre det ?
Avatar billede goose Nybegynder
08. december 2003 - 18:08 #2
Næe, så får jeg blot følgende fejl:

Microsoft VBScript runtime error '800a000d'
Type mismatch: 'insertKontaktSkema'

Jeg tror det har noget at gøre med, at include file bliver udført før noget andet, men jeg er ikke sikker ....

/Goose
Avatar billede csslover Nybegynder
08. december 2003 - 18:29 #3
ka du så ik bare lave en function der spytter din kontaktform ud...så virker det, den kan jo laves i kontakt.asp og includes i toppen af dit dokument
Avatar billede csslover Nybegynder
08. december 2003 - 18:32 #4
'START INC BØRGE
Function SkrivKontaktForm()
    SkrivKontaktForm = "---kontaktform---"
End Function
'SLUT INC BØRGE

Sub Main()
    content = "hej med dig her er en incfil<br>$$$kontakt$$$<br>mere txt txt txt tx <br>"
        content = replace(content, "$$$kontakt$$$", SkrivKontaktForm())
    Response.Write(content)
End Sub

Call Main
Avatar billede thesurfer Nybegynder
08. december 2003 - 19:11 #5
Kan du ikke bare bruge?:

<% if InStr(content, "$$$kontakt$$$") > 0 then %>

<!--#include file="kontakt.asp"-->

<% end if>
Avatar billede thesurfer Nybegynder
08. december 2003 - 19:11 #6
rettelse:

<% if InStr(content, "$$$kontakt$$$") > 0 then %>

<!--#include file="kontakt.asp"-->

<% end if %>
Avatar billede thesurfer Nybegynder
08. december 2003 - 19:18 #7
Min fejl.. læste lige dit spm igen.. prøv det her:
<%
if InStr(content, "***kontakt***") then
  response.write left(content, InStr(content, "***kontakt***") - 1) & "<br>"
  %>
  <!--#include file="kontakt.asp"-->
  <%
  response.write "<br>" & mid(content, InStr(content, "***kontakt***") + 13)
end if
%>

Jeg har erstattet "$$$kontakt$$$" med "***kontakt***", da $ tegnene er reserveret..
Avatar billede thesurfer Nybegynder
08. december 2003 - 19:19 #8
Jeg mener at have kommet med en brugbar løsning, og lægger hermed et svar.
Avatar billede thesurfer Nybegynder
08. december 2003 - 19:29 #9
Jeg går ikke ud fra at du kan finde på at smide 7 kontakt forme på 1 side :)
Forresten.. hvorfor smide en kontakt form midt i noget tekst?
Man plejer da bare at lave et link til en side med en kontakt form..
Avatar billede goose Nybegynder
08. december 2003 - 19:38 #10
thesurfer>> det er mere hvis jeg vil have noget tekst, så kontaktformulare, og så noget tekst igen. Jeg var ikke klar over at $ var et reserveret tegn, det er måske derfor jeg fik en fejl i min server.execute i et af mine mange forsøg ..... jeg prøver lige lidt frem og tilbage med dine løsninger og dem fra csslover ..... jeg vender tilbage

/Goose
Avatar billede thesurfer Nybegynder
08. december 2003 - 19:39 #11
Kommer der flere kontakt formularer på samme side?
Avatar billede goose Nybegynder
08. december 2003 - 20:13 #12
thesurfer>> det kan der måske godt ..

/Goose
Avatar billede thesurfer Nybegynder
08. december 2003 - 20:22 #13
Her er et eksempel, hvor du kan indsætte så mange kontakt forms, du vil..
Formularen i kontakt.asp er ikke særlig køn.. men du erstatter det bare med dit eget..

indholdet af kontakt.asp:

<br>
<form name="kontakt" action="sendpost.asp" method="post">
navn: <input type="text" name="navn">
<br>
besked: <textarea name="besked"></textarea>
<br>
<input type="submit" value="Send">
</form>
<br>

og her er selve asp koden:

<%
if InStr(content, "***kontakt***") then

arrKontakt = split(content, "***kontakt***")

for i = LBound(arrKontakt) to UBound(arrKontakt) - 1
response.write mid(content, 1, instr(content, "***kontakt***") - 1) & "<br>"
%>
<!--#include file="kontakt.asp"-->
<%
content = mid(content, instr(content, "***kontakt***") + 13)

next
response.write content
end if
%>
Avatar billede thesurfer Nybegynder
08. december 2003 - 20:36 #14
En forbedring der gør det muligt for dig hurtigt at ændre nøgleordet "***kontakt***" til f.eks. "*k*", eller hvad du nu synes:

<%
dim strKeyword, arrKontakt, i

strKeyword = "***kontakt***" ' <-- Du kan rette nøgleordet her

if InStr(content, strKeyword) then

arrKontakt = split(content, strKeyword)

for i = LBound(arrKontakt) to UBound(arrKontakt) - 1
response.write mid(content, 1, instr(content, strKeyword) - 1) & "<br>"
%>
<!--#include file="kontakt.asp"-->
<%
content = mid(content, instr(content, strKeyword) + len(strKeyword))

next
response.write content
end if
%>
Avatar billede goose Nybegynder
08. december 2003 - 21:06 #15
Ja det blev en blanding af begge jeres forslag, noget kunne bruges det ene sted og noget det andet, b.la. fordi jeg også skulle have nogle querystrings flettet ind hist og her, så jeg takker for hjælpen og i får en "hund" hver, håber det er ok.

/Goose
Avatar billede thesurfer Nybegynder
08. december 2003 - 21:09 #16
Det var så lidt.
Takker for points.
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