Newsgroup: it.comp.lang.javascript
Titolo: javascript passaggio variabili tra pagine

Ciao a tutti,
ho un piccolo problema, risco a passare variabili fra pagine diverse
ma mentre l'"andata" lo faccio in PHP e tutto funziona bene, al
ritorno uso Javascript e piu' precisamente opener.window.NomeVariabile
e poi chiudo la pagina "figlia". La cosa funziona correttamente solo
se nella pagina origine metto un alert che mi faccia dare ok prima di
iniziare a usare la variabile.
Non e' un problema di timing perche' ho gia' provato a mettere un
delay nella pagina origine al posto dell'alert e non funziona.
Credo sia un evento che scatena una specie di refresh della pagina
solo quando uso l'alert.
Qualche idea? 
posso generare lo stesso evento di "premi ok sull'alert" senza usare
alert?
Grazie mille 
Gio

 iniziare a usare la variabile.
Non ho capito molto...
lato client apri la window (scrivendo la funzione javascript da php),
restituisci ad un certo punto un valore (opener.NomeVariabile=valore) e
dici che non la leggi? Impossibile...
Leggendo la storia dell'alert mi viene in mente: non è che ti aspetti che
quando apri con window.open l'esecuzione si interrompa finché non la
chiudi? Perché così non è: se esegui un window.open il javascript continua
fino alla fine...
Se serve potresti anziché assegnare il valore alla variabile passarlo come
parametro a una function, così rinizi da lì l'esecuzione dello script.
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.

Ciao, prima di tutto ti ringrazio per l'interessamento,
di seguito trovi la funzione Javascript che uso per "caricare" una
select dal risultato (un array) della finestra "QueryNeg.php"
function CaricaNeg(opt) {
 
   var PaginaQuery="QueryNeg.php?opzione="+opt;
   IdQuery=window.open(PaginaQuery,'QueryNeg','scrollbars=no,status=no,resizable=no,width=800,height=600');
    window.alert("POPUP APERTA E CHIUSA");
    var elenco=PassaVar.split(",");
    var a=0;
    document.QryClienti.Negozio.options.length = (elenco.length/2);
    for (i=0; i<(elenco.length); i++) 
    {
     document.QryClienti.Negozio.options[a++]=new
Option(elenco[i],elenco[++i]);
    }
}
Nella pagina "QueryNeg.php" invece ho:
opener.window.PassaVar="<?echo $Risultato?>";
window.close();
dove $Risultato e' una stringa con le virgole ritornata da una
funzione php che interroga il database MSSQL.
Se lascio nella prima pagina "window.alert("POPUP APERTA E CHIUSA");" 
la cosa funziona (tranne la primissima volta che apro la pagina mha!)
se tolgo l'alert non funziona mai.
Ti preciso che sono pochi giorni che mi cimento in questo campo quindi
pensa pure alle cose piu' stupide che uno puo' aver fatto :-)
Grazie ancora!
Gio

     var elenco=PassaVar.split(",");
E' qua che sbagli ma non č un errore di scripting ma un errore logico.
Come ti dicevo nell'altro messaggio la window.open *NON* blocca
l'esecuzione della function. Quindi stai aprendo una popup e
*IMMEDIATAMENTE* vai a leggere il risultato che restituisce (solo che la
popup non ha ancora fatto a tempo ad aprirsi, settare la variabile e
chiudersi!).
Cosě a grandi linee potresti lasciare la function CaricaNeg(opt) fino alla
window.open e mettere il resto in un'altra function, chiamiamola
DopoAverCaricatoNeg(s).
Dalla tua popup chiami opener.DopoAverCaricatoNeg("<?echo $Risultato?>");
e in s avrai il valore di ritorno (da qua inizi con PassaVar=s; var
elenco=PassaVar.split(";"); etc etc.
Prova un po', fai sapere come va.
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.

Grazie Cristiano,
effettivamente non sapendo come vengono processati i Javascript non capivo 
quello che succedeva... 
Un aiuto preziosissimo il tuo!
Grazie ancora!
Gio