webForumDet fria alternativet

Mailutskick i Sub med Array

1 svar · 312 visningar · startad av MickeA.com

MickeA.comMedlem sedan feb. 20034 441 inlägg
#1

Tjena
Jag har ett antal mallar för mailutskick sparade i databasen (SQL-Server).
Vidare så har jag gjort en Sub som ska fixa själva mailutskicket.

I Subben så hämtas aktuell mall som ska användas till mailet, kan se ut typ såhär:

Du har begärt dina användaruppgifter från vår sajt:
Anv. namn:  %USERNAME%
Lösenord:    %PASSWORD%

Använda ovanstående uppgifter för att logga in.

Eftersom innehållet i mailet (%USERNAME% etc.) kan variera mellan mallarna, så vill jag istället spara den data som ska användas i subben och skicka med som en array, typ såhär:

Dim arr(4)
arr(0) = "%USERNAME%"
arr(1) = "Micke"
arr(2) = "%PASSWORD%"
arr(3) = "mitt_passwd"

...för att sedan köra en replace med min mailbody från databasen, för att byta ut "dynamisk" data.

Frågan är, hur gör jag?
Jag har inte hållt på med det här tidigare, så all hjälp tages tacksamt emot!

MickeA.comMedlem sedan feb. 20034 441 inlägg
#2

Med lite sökande och tester kom jag fram till följande:

<%
Function expand(temp, param_array)
	If temp = "one" Then
		body =	"-----------------------------------<br />" &_
			"Värde 1: %VAR1% <br />" &_
			"Värde 2: %VAR2% <br />" &_
			"Värde 3: %VAR3% <br />" &_
			"-----------------------------------<br />"
	Else
		body =	"-----------------------------------<br />" &_
			"Värde 1: %VAR1% <br />" &_
			"Värde 2: %VAR2% <br />" &_
			"-----------------------------------<br />"
	End If
	n = UBound (param_array) 
	For i = 0 To n/2-1
		body = Replace (body, param_array (2*i+1), param_array (2*i+2))
	Next
	expand = body
End Function

Dim p(10)
p(1) = "%VAR1%"
p(2) = "VALUE1"
p(3) = "%VAR2%"
p(4) = "VALUE2"
p(5) = "%VAR3%"
p(6) = "VALUE3"
Response.Write("<p>Värden:<br />" & expand("one", p) & "</p>")

p(1) = "%VAR1%"
p(2) = "FOO1"
p(3) = "%VAR2%"
p(4) = "FOO2"
Response.Write("<p>Värden:<br />" & expand("two", p) & "</p>")
%>

Det funkar kanon, men, går det är optimera koden, finns det andra, bättre sätt att lösa det på?

Tack!

127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)