Newsgroup: it.comp.lang.javascript
Titolo: Eliminare dati inviati tramite post dopo il submit

Ciao a tutti,
in una pagina web c'è un form che al click ricarica la medesima pagina 
inviando delle informazioni tramite post. Ora dopo aver fatto il submit con 
le nuove informazioni, vorrei fare in modo di eliminare le informazioni 
passate precedentemente tramite post.
Come posso fare ciò?
Il mio obiettivo è fare in modo che non compaia l'avviso: "Per visualizzare 
nuovamente la pagina è necessario rinviare tramite internet explorer le 
informazioni inviate in precedenza. Se si sta effettuando un acquisto fare 
click su annulla etc etc etc..." dal momento che quando effettuo il reload 
della pagina, non mi interessa re-inviare le informazioni (precedentemente 
inviate tramite post) alla pagina di origine.
Grazie a chi mi aiuta a risolvere questo problema.
Cooper.
 

Io risolvo il problema eliminando il tag <form> in pratica costruisco
una pagina con gli elementi che permettono il data-entry (input,
select, ecc...) dopo il fatidico click di invio, acquisisco i dati via
javascript (getElement ecc..) creo una stringa formattata dei dati e
li invio via ajax (XLMHttp ecc..)
In questo modo il refresh della pagina non attiva l'invio dei dati.



Il problema però è che i dati tramite post li devo inviare la prima volta, 
ma non la seconda.
Mi spiego meglio illustrando l'intero processo.
1) Carico la pagina iniziale (contiene un form con dei dati da inviare 
tramite post)
2) Al submit della pagina, ricarico la stessa (il contenuto varia 
dinamicamente).
3) Al submit del nuovo form effettuo il reload della pagina.
4) Al reaload della pagina compare il messaggio di cui al post precedente.
Il problema è che, mi trovo dei dati in post e voglio eliminarli in modo che 
al reload (punto 3) non mi compaia quel messaggio (a causa dei vecchi dati 
in post).
Un po' come succede quando si apre il browser e viene caricata la pagina 
ex-nova (ovvero senza nulla in post) bella pulita pulita per intenderci.
In altre parole quando si passa dal punto 2 al punto 3, i dati presenti in 
post dovrebbero essere cancellati a caricamento della pagina di cui al punto 
3, prima che l'utente possa fare altre operazioni con il form.
Grazie ancora,
Cooper.
 

Con la tecnica descritta i dati non rimangono visualizzati all'interno
degli elementi di data-entry (input, select, ecc..) nel dubbio però è
sufficiente dare una ripulita via javascript associata all'evento load
della pagina. I dati nel post non li hai associati alla pagina se usi
ajax (XLMHttp ecc..)
Hai il codice (x)html già fatto? Oggi ho tempo per altre due ore, se
fattibile ti preparo il codice js



La pagina xhtml è già pronta in locale, ma non online; ma non ha nulla di 
particolare, si tratta di un semplice form dove il submit lo effettuo 
tramite l'evento onclick e dove all'interno dell'evento onclick inserisco 
anche l'istruzione per il reload della pagina usando:  location.reload (); 
oppure tramite la popup usando l'istruzione: 
window.opener.location.reload();
Tutto funziona correttamente, il problema è che voglio fare in modo che 
quella finestrella con quel messaggio non mi compaia, perchè di fatto i dati 
che vengono ritornati alla pagina di origine non mi interessano più una 
volta inviati.
Mi sembra di capire che soltanto eliminando i valori in post (che vengono 
ritrasmessi alla pagina) posso ovviare a questo problema; mi rimane solo da 
capire come fare ciò.
Grazie mille ancora per la disponibilità.
Cooper.
 


Mi sono accorto che il problema si presenta anche in una circostanza più 
semplice; provo a esprimere lo stesso seguendo un altra strada.
Ho una pagina web dove attraverso un form effettuo un submit usando il 
metodo post. Successivamente al submit, se faccio "aggiorna" sul browser 
compare il messaggio:
 "Per visualizzare nuovamente la pagina è necessario rinviare tramite 
internet explorer le informazioni inviate in precedenza. Se si sta 
effettuando un acquisto fare click su annulla etc etc etc..."
Come bisognerebbe intervenire perchè cliccando su "aggiorna" non venga 
visualizzato quel messaggio?
Non è possibile fare il reload della pagina, perdendo le informazioni 
contenute nel post? Quelle informazioni infatti non mi servono più e quindi 
posso eliminarle, evitando di imbattermi in quella finestra.
Grazie ancora.
Cooper.
 

Per evitare che faccia troppo di testa mia inviami la pagina in pvt ed
associo il codice js



Forse non è necessario, credo di aver risolto usando questa istruzione:
              window.opener.location.href = window.opener.location.pathname;
posso chiederti se ha qualche problema di compatibilità?
Ho provato e sembra fare al caso mio, nel senso che risolvono il problema 
che ho riscontrato; ma ho provato solo con ie7 e ff3; ma con altre versioni?
Grazie ancora,
Cooper. 

Con Chrome non riscontro problemi, mi sembra una soluzione semplice ed
elegante



Ok grazie del riscontro; utilizzerň allora questa soluzione, mi sembra che 
sia la piů semplice.
Grazie ancora.
Cooper. 

 anche l'istruzione per il reload della pagina usando: 
Credo che il comportamento dipenda dal browser specifico, in particolare 
il tuo dopo un POST ti avvisa che devi reinviare i dati ma un altro 
browser potrebbe ad esempio ignorare il POST.
Perché effettui un reload? Se vuoi la pagina bianca fattela fornire tale 
dal server dopo il submit o forse stai lavorando solo lato client?

"Andrea D'Amore" <and.d...@VIALOSPAM.gmail.com.invalid> ha scritto nel 
messaggio news:and.damore-4AA8B...@newssrv.fastweb.it...

Sto lavorando lato client e lato server.
Cmq sembra sia riuscito a risolvere con un location.href.
Cooper. 

 Cmq sembra sia riuscito a risolvere con un location.href.
Probabilmente cambiando href viene registrato un GET al reload.