Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    26

    Problema popup & reload

    Ciao a tutti..ho questo problema..

    In una pagina per l'inserimento di alcuni dati ho un menù a discesa da cui selezionare uno tra i valori presi dal DB.
    Accanto alla lista ho messo 2 pulsanti tramite cui è possibile aggiungere o togliere una voce all'elenco (e quindi al DB).
    Cliccando su uno dei 2 si apre una popup in cui c'è la form pe l'inserimento.
    Volendo fare il tutto più carino ho fatto in modo che, una volta inserita la nuova voce, dalla popup si ricarichi la pagina chiamante (window.opener.location.reload()) e poi si chiuda la popup setssa (this.close()).
    Facendo in questo modo però perdo tutti i dati che avevo gia inserito nella form della pagina chiamante.
    Per ovviare a questo problema, anzichè utilizzare le sessioni di PHP, ho pensato di fare 2 nuove funzioni JScript..
    La prima salva tutti i dati che avevo inserito nella form della pagina chimaante, mentre la seconda li va a reinserire nella stessa form.
    A questo punto, l'elenco delle azioni post-inserimento sono:
    1) salvataggio dei dati della form della pagina chiamante
    2) reload della pagina chiamante
    3) ripristino dei dati salvati al punto 1
    4) chiusura della popup

    Questo è il codice delle 2 funzioni salva() e ripristina()

    <script language="JavaScript">
    // variabili globali
    var codice;
    var nome;
    var argomento;
    var condizione;
    var iscrizione;
    var concorso

    function salva(x)
    {
    codice = window.opener.dati.codice.value;
    nome = window.opener.dati.nome.value;
    argomento = x;
    condizione = window.opener.dati.condizione.value;
    iscrizione = window.opener.dati.iscrizione.value;
    concorso = window.opener.dati.concorso.value;
    }

    function ripristina()
    {
    window.opener.dati.codice.value = codice;
    window.opener.dati.nome.value = nome;
    window.opener.dati.argomento.value = argomento;
    window.opener.dati.condizione.value = condizione;
    window.opener.dati.iscrizione.value = iscrizione;
    window.opener.dati.concorso.value = concorso;
    }
    </script>

    dove x è il valore che ho inserito in modo che poi nella form mmi venga già selezionato.

    Aquesto punto ho un problema...
    Inserendo il codice JScript così come sopra non funziona..se però aggiungo un alert che scriva qualsiasi cosa come prima istruzione di entrambe le funzioni...
    Tutto va magicamnete :-(
    A questo punto mi chiedo...perchè??
    Qualcuno può aiutarmi??

    Grazie 1000 e

    Continuando i miei spippolamenti mi sono appena accorto che funziona anche senza alert nella funzione salva...quindi il problema è SOLO sulla ripristina...

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Probabilmente l'alert ti introduce un ritardo nell'esecuzione della routine (e` l'unica spiegazione che posso trovare).

    Tu usi il termine Jscript: e` un linguaggio proprietario di IE: se vuoi una cosa che funzioni in tutti i browser devi usare JS (javascript), ma mi pare che intendessi JS.

    Comunque per toranre al tuo problema, prova a fare window.opener.document.dati.codice.value = codice;

    dove dati e` il nome del form e codice il nome del campo di input (tipo text, textarea o hidden, gli altri campi si indirizzano in modo diverso).

    Naturalmente non ci devono essere frame nella finestra principale.

    Vedi come vanno queste idee che ti ho buttato li`; altrimenti occorre pensare ad un metodo alternativo, senza ricaricare la pagina principale.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    26
    grazie adesso provo...
    Si intendevo il JavaScript..avevo abbreviato così per far prima...

    no, non funziona nemmeno mettendo il document
    Però potrebbe essere una cosa dovuta al ritardo...provo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.