javascript e funzioni reload()

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
ermes
Linux 2.x
Linux 2.x
Messaggi: 372
Iscritto il: dom 20 feb 2005, 0:00
Slackware: current 64
Desktop: kde
Località: Rho (Mi)

javascript e funzioni reload()

Messaggio da ermes »

ciao a tutti.
ho creato alcune pagine web in php.
in particolare, per alcune funzionalità del sistema da una pagina posso lanciare una seconda pagina che, a sua volta può lanciare una terza pagina:
situazion
pagina nonno -> pagina padre -> pagina figlio.

nel sistema attuale, quando chiudo la pagina figlio, con un semplicissimo script faccio aggiornare la pagina padre e quando chiudo la pagina padre faccio aggiornare automaticamente la pagina nonno.

questo lo script:

Codice: Seleziona tutto

<SCRIPT LANGUAGE=\"JAVASCRIPT\">
function aggiorna(){
   opener.parent.location.reload(); /* ricarica la pagina padre */
   self.close();                               /* chiude la pagina corrente */
   }
</SCRIPT>
ora vorrei che alla chiusura della pagina figlio si aggiornasse, oltre alla pagina padre, anche la pagina nonno ma i miei tentativi non funzionano:
Ho provato così:

Codice: Seleziona tutto

<SCRIPT LANGUAGE=\"JAVASCRIPT\">
function aggiorna(){
   opener.parent.location.reload();            /* ricarica la pagina padre */
   opener.parent.parent.location.reload(); /* ricarica la pagina nonno */
   self.close();                                          /* chiude la pagina corrente */
   }
</SCRIPT>
ma mi si aggiorna solo il padre...
cosa sbaglio ?

(ps: spero di essermi spiegato decentemente !)

Avatar utente
teox99
Linux 3.x
Linux 3.x
Messaggi: 738
Iscritto il: ven 25 lug 2008, 14:54
Slackware: 13.37
Desktop: KDE - Xfce
Località: Roma[Eur]
Contatta:

Re: javascript e funzioni reload()

Messaggio da teox99 »

la tua soluzione oltre che a non essere cross browser è contro gli standard w3cs.
dovresti capire queli sono le tue vere esigenze e riproporre una soluzione funzionante magari usando ajax o simili.

Avatar utente
ermes
Linux 2.x
Linux 2.x
Messaggi: 372
Iscritto il: dom 20 feb 2005, 0:00
Slackware: current 64
Desktop: kde
Località: Rho (Mi)

Re: javascript e funzioni reload()

Messaggio da ermes »

allora... avrei risolto così:

Codice: Seleziona tutto

<SCRIPT LANGUAGE=\"JAVASCRIPT\">
function aggiorna(){
   opener.parent.location.reload();            /* ricarica la pagina padre */
   opener.opener.parent.location.reload(); /* ricarica la pagina nonno */
   self.close();                                          /* chiude la pagina corrente */
   }
</SCRIPT>
premetto che non sono un esperto e per questo probabilmente non sono riuscito a capire cosa non rispetta gli standard... potresti darmi alcune dritte ?

grazie 1000

Avatar utente
teox99
Linux 3.x
Linux 3.x
Messaggi: 738
Iscritto il: ven 25 lug 2008, 14:54
Slackware: 13.37
Desktop: KDE - Xfce
Località: Roma[Eur]
Contatta:

Re: javascript e funzioni reload()

Messaggio da teox99 »

il controllo della chiusura, aggiornamento o apertura delle pagine deve essere decisa manualmente dall'utente
le pagine si devono aprire con dei semplici link <a href target>
x questo la tua funzione aggiorna non ha senso di esistere.

Avatar utente
ermes
Linux 2.x
Linux 2.x
Messaggi: 372
Iscritto il: dom 20 feb 2005, 0:00
Slackware: current 64
Desktop: kde
Località: Rho (Mi)

Re: javascript e funzioni reload()

Messaggio da ermes »

scusa se rilancio la richiesta di chiarimenti.
in effetti le mie maschere si aprono e chiudono attraverso dei link (solitamente metto dei bottoni con link incorporato).
ho creato queste funzioni perchè alla chiusura della pagina (tipicamente per la creazione, la modifica o la cancellazione di un elemento contenuto in un DB) ho la necessità di aggiornare la pagina web che ha lanciato la maschera. Esempio:
ho in una pagina l'elenco degli allievi della mia classe; ad ogni allievo è associato un pulsante per modificare i dati e uno per cancellare l'allievo stesso.
quando uso un pulsante mi si apre una maschera con i dati dell'allievo.
una volta fatta la modifica e deciso di cancellare l'allievo, confermo la decisione con un pulsante che salva i dati, chiude la maschera e riporta il controllo alla pagina di partenza aggiornandola per visualizzare le modifiche operate (e qui interviene la funzione javascript).

quindi mi sembra che tutto avvenga sotto il controllo dell'utente.
mi sfugge qualche cosa ?

grazie per la pazienza

Avatar utente
teox99
Linux 3.x
Linux 3.x
Messaggi: 738
Iscritto il: ven 25 lug 2008, 14:54
Slackware: 13.37
Desktop: KDE - Xfce
Località: Roma[Eur]
Contatta:

Re: javascript e funzioni reload()

Messaggio da teox99 »

non ci siamo capiti, stai sbagliando semlicemente il modo di pensare.
se vuoi aggiornare dinamicamente delle pagine puoi usare AHAH
http://www.openjs.com/articles/ajax/aha ... over_http/

il tuo problema e' che cosi' facendo lasci aperta la pagina da modificare ed e' logico che poi devi fare i salti mortali per riaggiornarla.
puoi risolvere ancora piu' semplicemente spedendo in post/get le variabili sempre alla stessa pagina.

ilmich
Master
Master
Messaggi: 1645
Iscritto il: lun 16 lug 2007, 17:39
Slackware: 15.0 64bit
Kernel: 5.15.27
Desktop: kde
Località: Roma

Re: javascript e funzioni reload()

Messaggio da ilmich »

Correggetemi se sbaglio, ma secondo me, quello che sta cercando di dirti teox99 e' semplicemente che la tecnica che stai cercando di usare e' una forzatura.
Non serve aprire 3 popup per un applicazione di inserimento / modifica / cancellazione record.
Ti diventa tutto piu' complicato e difficilmente gestibile, soprattutto perche' con molta probabilita' non e' compatibile con tutti i browser in circolazione(ma forse questo aspetto non ti interessa).

Sarebbe piu' semplice e lineare, anziche' aprire i popup, prevedere almeno due pagine, una con la lista dei dati, e l'altra che ti consente di fare inserimenti/modifiche e cancellazioni su di essi.
In questo modo il problema dell'aggiornamento non ti si pone per niente.
#LiveSimple and #ProgramThings
https://github.com/ilmich
http://ilmich6502.it/

Avatar utente
ermes
Linux 2.x
Linux 2.x
Messaggi: 372
Iscritto il: dom 20 feb 2005, 0:00
Slackware: current 64
Desktop: kde
Località: Rho (Mi)

Re: javascript e funzioni reload()

Messaggio da ermes »

ok!
ora ho capito.
grazie 1000 ;)

Rispondi