Newsgroup: it.comp.www.php
Titolo: Intercettare la chiusura di una finestra... ma solo se non premo un bottone

Ciao a tutti,
il subject e` abbastanza criptico ma non sono riuscito a riassumerlo meglio.
Cominciando dall'inizio la storia e` cosi`:
c'era una volta una pagina con una lista di link; questa pagina viene costruita
leggendo un progressivo su un database MySQL ed il link carica una dialog o una
popup se preferite con tutti i campi del record che si possono modificare.
La finestra ha i 3 classici bottoni: salva modifiche, cancella, esci.
Prima di caricare la pagina io imposto un booleano sul record che mi segnala
che quel record e` lockato da un'altra persona, ovviamente quando salvo o esco
tolgo il lock.
Tutto funziona perfettamente finche` non decido di chiudere la finestra con
il pulsante X della window. In questo caso il lock non viene tolto.
Allora ho provato con la "clausola" onUnload, e riesco a togliere il lock,
solo che quando uso uno dei bottoni che chiamano un'altra pagina per fare
quello che devono fare non mi esegue il caricamento della pagina ma la
funzione chiamata da onUnload.
Vi viene in mente qualche trucchetto per ovviare questo problema?
Ciao
s
-- 
Stephen McPuppa
Il sito del NewsGroup IHAq: 
http://www.ithobbyacquari.org
---------------------------------------------------------
Attenzione: anti-spam attivato, per scrivermi in privato
sostituisci 'sMcPuppa' con 's della puppa' senza spazi.
---------------------------------------------------------

 il pulsante X della window. In questo caso il lock non viene tolto.
Dimenticavo, il problema si propone anche quando dopo aver aperto la prima
dialog di dettaglio vado sulla pagina dei link e clicco su un'altra.
Entrambe mi mettono il lock sul record caricato ma quando esco si slocka
solo l'ultima che ho caricato.


 ha scritto nel messaggio
news:bj01cd$dh805$1...@ID-114884.news.uni-berlin.de...


 
magari imposta il tutto in un modo diverso, chessò, salvando insieme al 
lock anche un timestamp o addirittura l'id di una sessione, magari 
qualcosa risolvi
ciao
Alesi_27

 e' quello di cui si parlava
sono andato a leggermi il thread, ma non c'e` una soluzione proposta.
Diciamo che si parla del fatto che MySQL non sia una DB transazionale,
anche se mi hanno detto che nelle ultime versioni hanno implementato
anche questo, pero` utilizzando la transazionalita` non risolvo il
problema dell'unlock.
ho provato a pensare ad un qualche sgamuffo utilizzando il sessionID,
ma non trovo una metodo che mi intercetti l'uscita dalla finestra senza
passare dai bottoni.
O meglio mi e` venuta in mente la possibilita` di fare una funzione
associata alla onUnLoad che verifichi se sono stati premuti i bottoni,
ma:
1. non conoscendo molto javascript non so se ci sono delle funzioni
   che permettano questo,
2. una volta che sono entrato nella funzione, come faccio a passare
   eventuali parametri alle pagine da caricare?


 qualcosa risolvi
In origine avevo pensato ad una timestamp che al momento del salvataggio
controllasse se era quello caricato, pero` il punto e` che ha la precedenza
il primo che ha deciso di modificare il record, non il primo che lo salva.
A prescindere da questo pero`, io problema rimane, in quanto io non ho la
possibilita` di gestire l'uscita dalla finestra in maniera particolare
solo ed esclusivamente se premo la X, la onUnload scatta sempre.
ciao


 
il timestamp ti può aiutare a risolvere alcuni lock che cmq resterebbero 
bloccati... se passa X tempo da quel timestamp il lock non è più valido...
ciao
Alesi_27

 bloccati... se passa X tempo da quel timestamp il lock non è più valido...
E` vero! Non ci avevo pensato. Invece di metterci un banale booleano ci
metto un timestamp e se alla prossima modifica e` passato piu` di un tot
lo libero (magari con un messaggio di warning). :-)
Grazie della dritta.


 funzione chiamata da onUnload.
Non conosco tantissimi Javascript, ma non c'e' anche una funzione onClose?
Bye.

 Non conosco tantissimi Javascript, ma non c'e' anche una funzione onClose?
Purtroppo no. :-(
