5 messaggi dal 06 settembre 2002
Ciao a tutti
ho un piccolo problema che non riesco a risolvere....
come faccio stampare a video il risultato di una funzione senza usare il response.write ?

Sto creando un piccolo content manager e se utilizzo il response.write all'interno della funzione per sostituire un tag ( ad esempio: [menu]) giustamente mi pone il risultato all'inizio della pagina e non nel punto giusto in cui si trovava il tag nel template html....

se c'è bisogno posto il codice (un po lunghino)..... fatemi sapere

ciao e grazie
andrea
100 messaggi dal 29 marzo 2002
ciao, puoi postare il codice??

ciao

Paolo Busonera
5 messaggi dal 06 settembre 2002
Function parser()
Dim rsContent
Dim rsContent_numRows

Set rsContent = Server.CreateObject("ADODB.Recordset")
rsContent.ActiveConnection = conn
rsContent.Source = "SELECT * FROM contenuti"
rsContent.CursorType = 3
rsContent.CursorLocation = 2
rsContent.LockType = 1
rsContent.Open()

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

Dim template_content
Set template_content = Server.CreateObject("ADODB.Recordset")
template_content.ActiveConnection = conn
template_content.Source = "SELECT * FROM contenuti WHERE ID =" & request.querystring("page")
template_content.CursorType = 3
template_content.CursorLocation = 2
template_content.LockType = 1
template_content.Open()

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

'*********** DEFINISCO LE KEYWORDS

MyPageTitle = (rsContent.Fields.Item("titolo").Value)
Page_Content = (rsContent.Fields.Item("contenuto").Value)
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 if request.querystring("nodo") <> "" then
nodo = request.querystring("nodo")
end if
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
rs.close
response.write label
end function


********************************************************************************

In poche parole uso la funzione main_menu() per creare il menu principale e la funzione parser() per recuperare il contenuto html del template e sostituire i tag con i risultati asp.

Il problema che mi si pone è che i tag con valori da database li sostituisce nelle posizioni giuste, ma le funzioni dove uso il response.write mette il risultato a inizio pagine e non nel tag corretto.

Grazie da subito per l'aiuto....
ciao
andrea
100 messaggi dal 29 marzo 2002
Nella function main_menu()

devi mettere else e non else if
togli un end if

prova a mettere response.write label nel ciclo

Paolo Busonera
3.122 messaggi dal 16 maggio 2002
Se quelle che tu hai scritto sono function, come mai non restituiscono nulla? Allora potevi scrivere delle subroutine. Le funzioni solitamente hanno un valore restituito.
Ad esempio parser potrebbe restituire MyWebPage, per cui quando vuoi puoi andare a scrivere
Response.Write parser()

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
Purtroppo se elimino l' else if mi torna un errore mentre se metto il response nel ciclo il risultato non cambia ... credo che sia improprio l'uso del response.write
5 messaggi dal 06 settembre 2002
Raynor ha scritto:
Se quelle che tu hai scritto sono function, come mai non restituiscono nulla? Allora potevi scrivere delle subroutine. Le funzioni solitamente hanno un valore restituito.
Ad esempio parser potrebbe restituire MyWebPage, per cui quando vuoi puoi andare a scrivere
Response.Write parser()


il problema è che il parser mi serve per recuperare il template html e sosituire i tag con i contenuti dinamici... purtroppo come avrete notato sono alle prime armi e faccio fatica a capire differenze fra sub, function e altre....
100 messaggi dal 29 marzo 2002
Function parser()
Dim rsContent
Dim rsContent_numRows
Dim nodo
Dim template_content

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

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

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

Set template_content = Server.CreateObject("ADODB.Recordset")
sqlsource = "SELECT * FROM contenuti WHERE ID =" & request.querystring("page")
template_content.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

'*********** DEFINISCO LE KEYWORDS

MyPageTitle = (rsContent.Fields.Item("titolo").Value)
Page_Content = (rsContent.Fields.Item("contenuto").Value)

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
rs.close

response.write label

end function

Paolo Busonera

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.