Sperando nella clemenza, riporto 2 blocchi del codice di una pagina ASP:
il tutto fa ridferimento ad un banale database in cui igni record contiene
un campo UserID ed i campi testo1 e testo2, tutti sono stringhe.
Col codice del BLOCCO 1 provvedo a caricare in due variabili i valori
memorizzari in testo1 testo2, col codice del BLOCCO 2 provvedo a
visualizzare un box message con il testo letto nel blocco 1.
Potete anche ridere, ma non funziona.
Mi spiego: la query carica regolarmente i valori dal database (ho provato a
visualizzarli nella caption e ci sono !!!), entro regolamente nel blocco if
del BLOCCO 2, però mi visualizza una box message "senza testo".
Per favore, cosa sto sbagliando ?
Grazie
Andrea
BLOCCO 1
<%@ LANGUAGE="VBScript" %>
<%
dim avviso_1, avviso_2
avviso_1 = ""
avviso_2 = ""
if ( UserID<>"" ) then
strconn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("/mdb-database/db_avvisiclienti.mdb")
Set Conn_avvisocliente = Server.CreateObject("ADODB.Connection")
Conn_avvisocliente.open strconn
Set rcs = Server.CreateObject("ADODB.Recordset")
rcs.open "SELECT * FROM Clienti WHERE UserID='" & UserID & "'",
Conn_avvisocliente
if not rcs.EOF then
avviso_1=rcs.fields("testo1").value
avviso_2=rcs.fields("testo2").value
end if
rcs.close
set rcs=nothing
Conn_avvisocliente.close
set Conn_avvisocliente=nothing
end if
%>
BLOCCO 2
<%
if ( avviso_1<>"" ) and ( avviso_2<>"" ) then
Response.write("<SCRIPT type='text/javaScript'>")
Response.write("alert(avviso_2)")
Response.write("</SCRIPT>")
end if
%>
> Per favore, cosa sto sbagliando ?
stai sbagliando a considerare client e server-side la stessa cosa ...
> dim avviso_1, avviso_2
> avviso_1 = ""
quindi avviso_1 è una variabile *SERVER-SIDE*
> Response.write("<SCRIPT type='text/javaScript'>")
script (in minuscolo), idem javascript
> Response.write("alert(avviso_2)")
qua nella pagina fai un bel alert(avviso_2) ... come fa javascript
*client-side* a sapere cosa vale (valeva in realtà, visto che è stata
distrutta quando ha terminato di caricare la pagina) avviso_2 ?
Devi in qualche modo passare il valore; il modo più semplice potrebbe
essere
Response.Write("alert('" & avviso_2 & "');") (attenzione se avviso_2
contiene ' )
Cogli la differenza?
--
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M.
sub VisualizzaAvviso(msg1, msg2)
dim msg
msg = msg1 & vbCrLf & msg2 (**)
Response.Write("<" & "script language=VBScript>")
Response.Write("MsgBox """ & msg & """, vbExclamation, ""Avviso
importante"" <" & "/script>")
end sub
La domanda che mi permetto č questa: l'istruzione ** serve per poter
visualizzare il messaggio su 2 o piů righe, cioč avere msg1 e poi, a capo,
msg2.
Naturalmente questo non funziona: sai darmi qualche dritta per favore ?
Grazie.
Ciao
Andrea
> sub VisualizzaAvviso(msg1, msg2)
> dim msg
> msg = msg1 & vbCrLf & msg2 (**)
> Response.Write("<" & "script language=VBScript>")
argh ... language=VBScript? perché da javascript sei passato a vbscript?
sei consapevole che l'unico linguaggio client-side cross-browser è
javascript, e che se usi vbscript funzionerà solo con IE (almeno finché IE
continuerà a supportare questa aberrazione client-side)?
Perché non hai continuato con alert?
> La domanda che mi permetto è questa: l'istruzione ** serve per poter
> visualizzare il messaggio su 2 o più righe, cioè avere msg1 e poi, a capo,
> msg2.
> Naturalmente questo non funziona: sai darmi qualche dritta per favore ?
usare alert (a capo: \n):
Response.Write("alert('"&msg1&"\n"&msg2&"');")
--
"Non sai che ci vuol scienza
ci vuol costanza
ad invecchiare senza maturità"
F.G.