Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problema in visualizzazione alert()

7 views
Skip to first unread message

phora

unread,
May 14, 2008, 7:22:37 AM5/14/08
to
Salve al NG

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
%>

Cristiano Larghi

unread,
May 14, 2008, 8:37:25 AM5/14/08
to
Il Wed, 14 May 2008 12:22:37 +0100, phora ha scritto:

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

phora

unread,
May 14, 2008, 10:20:08 AM5/14/08
to
Ti ringrazio ... gogglando (nella pausa pranzo) ho trovato una soluzione
simile (anche se non avevo capito bene il motivo e di questo ti sono grato).

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

Cristiano Larghi

unread,
May 15, 2008, 2:33:09 AM5/15/08
to
Il Wed, 14 May 2008 15:20:08 +0100, phora ha scritto:

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

0 new messages