Refresh e riferimenti

  • Creatore Discussione Creatore Discussione imaui
  • Data di inizio Data di inizio

imaui

Nuovo Utente
21 Feb 2008
12
0
0
Salve a tutti ed in particolare a Luke che in passato è stato molto gentile per un altro problema inderente l'invio di email.

il problem che ho adesso è questo:

sto cercando di inserire una funzione che mi possa dire senza fare refresh manuali ed in tempo reale(o quasi) se ci sono nuovi messaggi ricevuti o meno...e mi sto comportando in questo modo...

ho adattato una pagina proprio di luke per la connessione al database ed avere il totale dei nuovi messaggi,il risultato è questo..il file si chiama messaggitot.asp

<%@LANGUAGE = VBScript%>
<!--#include file="config.asp"-->
<%

Call APRI()
rs.Open "SELECT count(*) as TOTALE FROM messaggi_privati where destinatario='MAURY' and check=false", cn, 1
tot= rs("TOTALE")
With Response
.Write "<p>"
If rs.EOF Then
.Write("Nessun risultato!")
Else
.Write("Messaggi: "& rs("TOTALE")& "<br>")
End If
.Write "</p>"
End With
Call CHIUDI()
%>


poi ho inserito nella pagina dove dovrebbe essere visibile il totale nuovi messaggi,questo:

<script type="text/javascript" src="messaggi.js" onclick="wait()"></script>

..questo richiama la pagina seguente cioè messaggi.js

function wait()
{
document.getElementById('waitgif').style.visibility='visible';
}

function Aggiorna()
{
return Richiesta();
}
window.setInterval("Aggiorna()", 10000)

var XMLHTTP;

function Richiesta()
{
XMLHTTP.open("GET", "messaggi_tot.asp", true);
XMLHTTP.send(null);
}


dove c'è la funzione principale.

Il mio problema è che al posto di "MAURY" nella query della pagina messaggi_tot.asp ci dovrebbe essere una sessione utente che però nn so come passare come parametro...potete darmi una mano??

Maury
 
Ultima modifica:
Ciao, devi solo impostare una temporizzazione alla funzione Richiesta(), più o meno cosi:

function FaiPartireLa()
{
Richiesta()
}
x = window.setInterval("FaiPartireLa()", 5000); // 5 secondi

Non sono certo che funzioni al primo colpo; fammi sapere ;)
 
Ciao luke,ti ringrazio per la risposta ma il problema della temporizzazione l'ho gia risolto...l'nica cosa che nn riesco capire come passare la sessione da utilizzare al posto di "MAURY"...immettendola la sessione nella stessa pagina della query nn funziona per niente...
 
Mamma mia, che svista nel rispondere, scusami :)

Vuoi passare una sessione via Javascript? O meglio, immagino che tu scriverai la sessione nel codice ASP che richiami attraverso il motore AJAX. Non la vedo proprio la sessione creata, prova ad inserirla nello script ASP e fammi sapere.
 
allora Luke quello che voglio fare è far diventare la query cosi..

utente=session("username")
rs.Open "SELECT count(*) as TOTALE FROM messaggi_privati where destinatario ='" & UTENTE & "' and check=false", cn, 1

dove UTENTE è la sessione.

la sessione è utente=session("username") che avevo inserito direttamente in questa pagina ma nn me la legge...poi provato ad inserirla nella pagina .js passandola poi alla pagina della query cosi



var XMLHTTP;
utente=session("username")
function Richiesta()
{
XMLHTTP = RicavaBrowser(CambioStato);
XMLHTTP.open("GET", "messaggitot.asp?variabile=utente", true);
XMLHTTP.send(null);
}


e recuperandola della pagina .asp cosi

utente=request.querystring("variabile")
Call ConnOpen()
rs.Open "SELECT count(*) as TOTALE FROM messaggi_privati where destinatario ='" & utente & "' and check=false", cn, 1


e nemmeno...ti prego però nella risposta di scrivermi il codice e nn il modo perchè faccio ancora un po di confuzione con i termini...Maury
 
Fammi capire: quella query la lanci in un file ASP che richiami tramite AJAX e non ti stampa a video nulla, giusto?

Prova ad eseguire direttamente nel browser:

messaggitot.asp?variabile=xyz

dove xyz dev'essere un username esistente.

Cosa ti restituisce?
 
Eseguendo direttamente la query funziona...e sono quando inserisco la sessione che nn mi da nulla..
 

Discussioni simili