100 messaggi dal 29 marzo 2002
prova con questo

<%
Dim rsContent, rsContent_numRows, nodo, template_content, MyWebPage



Function parser()

Set connessione= Server.CreateObject("ADODB.Connection")
connesione.open "db"

Set rsContent = Server.CreateObject("ADODB.Recordset")
sqlString = "SELECT * FROM contenuti"
rsContent.Open sqlString, "db", 3

MyPageTitle = rsContent("titolo")
Page_Content = rsContent("contenuto")

Set objTemplate = Server.CreateObject("Scripting.FileSystemObject")

Set template_content = Server.CreateObject("ADODB.Recordset")
sqlsource = "SELECT * FROM contenuti WHERE ID =" & request.querystring("page")
template_content.Open sqlsource, "db", 3

MyWebPage = "Contenuto non trovato !"

If Request.QueryString("Page") <> "" Then
rsContent.filter = "id = " & CStr(Request.QueryString("Page"))
End If

If Not (rsContent.eof or rsContent.bof) Then
Set objText = objTemplate.OpenTextFile(Server.MapPath("temi/" & template_content.Fields.Item("template").Value),1,false)
Page_Template = objText.ReadAll
objText.Close
Set objText = Nothing
Set objTemplate = Nothing

menu = main_menu()

MyWebPage = Replace(Page_Template,"[contenuto]",Page_Content)
MyWebPage = Replace(MyWebPage,"[titolo]",MyPageTitle)
MyWebPage = Replace(MyWebPage,"[menu]",menu)

End If
Response.Write(MyWebPage)
end function

function main_menu()

if request.querystring("nodo") = "" then
nodo = "##ROOT##"
else
nodo = request.querystring("nodo")
end if

rs.Open "SELECT * FROM menu WHERE figlio_di = " & "'" & nodo & "'" & "ORDER BY ordine", conn

label = ""

Do While not rs.EOF

label = label & "<a href=default.asp?nodo=" & rs("id") & ">" & rs("etichetta") & "</a><br>"
rs.MoveNext
Loop

response.write label

rs.close
end function
%>

Paolo Busonera
3.122 messaggi dal 16 maggio 2002
Una subroutine è una sequenza di istruzioni che, sulla base di 0 o più dati d'ingresso, effettua alcune operazioni.
Una funzione invece è una sequenza di istruzioni che, sulla base di 0 o più ingressi, elabora un risultato che viene poi restituito al chiamante.
Perciò tu puoi benissimo scrivere la funzione parser, ma almeno utilizzala come tale e fatti restituire il testo formattato. Quindi prima di end function basta che imposti il valore di ritorno della funzione. Ad esempio

function parser()
...
parser = MyWebPage
end function

Senza utilizzare Response.Write all'interno della funzione, puoi avere quando vuoi tutta la tua pagina formattata semplicemente richiamando la funzione parser. Se vuoi farla stampare basta scrivere
Response.Write parser()
se vuoi darla in ingresso ad una subroutine (o function) basta
Call subroutine1(parser())

Ad esempio la funzione

function SQLString(fsql)
SQLString = Replace(fsql, "'", "''")
end function

è una funzione che non puoi non utilizzare se fai uso di database, è una funzione che prende in ingresso una stringa e ne dà in uscita un'altra che è quella di ingresso in cui sono stati duplicati gli apici singoli.

Le subroutine invece non restituiscono risultati, ma eseguono operazioni. Ad esempio

sub subroutine1(sparam)
Response.Write "<p>Questa è una subroutine</p>"
if param = "" then
Response.Write "<p>Il parametro è vuoto</p>"
else
Response.Write "<p>Il parametro è " & sparam & "</p>"
end if
end sub

Capito ora come funzionano le sub e le function?

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
5 messaggi dal 06 settembre 2002
OK. Vi ringrazio per l'aiuto..... comincio a capirci qualcosa......
faccio subito qualche prova e vediamo....

grazieeeeeeeeeeeeeee

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.