Newsgroup: it.comp.lang.javascript
Titolo: Variabili globali e Jquery

Ciao a tutti!!
riscrivo il post che ho cancellato poco fa perchè ho fatto un pò di
confusione =_='
Chiedo venia per l'errore...
Comunque spero che qualche buon lettore abbia voglia e tempo di
aiutarmi...
In una pagina header.php includo tutti i file da includere in tutte le
pagine tra cui una pagina chiamata "file.js".
in questa pagina c'è una funzione "miaFunzione()" che si attiva
all'evento stop di un div draggable jquery.
$("#mio_div").draggable({
		stop: function(event, ui){
			miaFunzione(event, ui, "mio_div");
		}
});
miaFunzione è strutturata in questo modo:
function miaFunzione(){
      nomeUtente=nome;
      alert('<br><br>Nome: '+nomeUtente);
}
ora, essendo una funzione che si attiva diversamente per ogni utente,
ho pensato di dichiarare nella pagina header, prima dell'inclusione di
file.js, una variabile globale chiamata "nome", che avrà ovviamente un
nome diverso per ogni utente che visualizza la pagina:
var nome="<?php echo $_SESSION[nome]; ?>"
ricapitolando:
1)dichiaro la variabile "nome"
2)includo file.js in cui c'è miaFunzione.
3)sempre in file.js dopo la sua dichiarazione, utilizzo miaFunzione.
a questo punto dovrebbe venir fuori un bell' alert(nomeUtente) che mi
dice il nome dopo che ho spostato il mioDiv, ma non funziona!! ho
cercato molto con google ma non capisco dove sbaglio..
Grazie a tutti per la pazienza e l'eventuale aiuto!!
Ciao!

 cercato molto con google ma non capisco dove sbaglio..
Non appare l'alert o appare l'alert ma con la scritta
<br><br>Nome :
e niente dopo?
Bye.


non appare l'alert e il jquery si blocca perdendo la funzione di
draggable


p.s. se io anzichè usare il valore della variabile locale uso un
valore stringa impostato nella funzione, l'alert si visualizza
correttamente..

 wrote:

Ho risolto facendo un include diverso nella pagina header e mi sono
tolto il problema della variabile globale.
Infatti, mettendo semplicemente la pagina delle funzioni js in un
include("nomePaginaFunzioniJS.php");
posso scrivere tranquillamente codice php all'interno del file JS e
dando alla variabile locale, nella funzione miaFunzione,  "nome" il
valore di $_SESSION['nome'];
avendo lo stesso risultato. Grazie comunque per l'interessamento :-D
Ciao!!

 include("nomePaginaFunzioniJS.php");
Cosi` pero` ti giochi il caching del browser.
Se quella lista di funzioni e` corta e/o e` usata da 1-2 pagine nessun 
problema.
Se contiene funzioni usate da tutte le pagine e occupa piu` di 3-4 KB, io 
cercherei un modo migliore :)
 
Bye.


E' vero però, ho dovuto smadonnare in 4 lingue per passare poi altri
dati usando solo jquery... in effetti, e non capisco il perchè, ora
c'è pure un fastidiosissimo difetto che non riesco a capire come
togliere..
Ho un unico div che si aggiorna ogni tot secondi impostando il tempo
con setInterval(), però quando si aggiorna il div, è come se le
funzioni jquery si bloccassero e si resettassero (tipo l'accordion con
un pannello aperto, che si chiude da solo, essendo impostato con
"active: false", o che quando scrivo una frase in una casella di testo
non mi accetta i caratteri uno o due che siano, mentre li digito.
Eppure le cose funzionano tutte nello stesso modo, solo che è come se
si congelasse la pagina...