Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613

    Funzioni javascript da popup

    Nel titolo è praticamente impossibile spiegare.

    Dunque ho un'applicazione completamente basata su ajax, uso le tw_sack come librerie.

    Da una pagina apro una popup da dove scegliere una lista di cose tramite checkbox. Al "onChange" della checkbox parte una chiamata al file php che si occupa dell'inserimento nel db della scelta, ovviamente tramite ajax, per risposta faccio in modo di ricaricare una porzione della pagina opener.

    La chiamata e l'inserimento vengono effettuati ma solo quando viene chiusa la popup!!! Sembra quasi che restino in memoria le chiamate e quindi finalizzate alla chiusura (non c'è nessunissimo evento onclose in tutta l'applicazione!).


    // JavaScript

    // il div msg contiene il risultato dell'operazione

    var ajax = new sack();

    // Serve per deserializzare un oggetto serializzato e inviato dal php
    var PHPSer = new PHP_Serializer();


    function whenLoading(){
    var e = document.getElementById('msg');
    e.style.visibility = 'visible';
    e.innerHTML = "invio rischiesta...";
    }

    function whenLoaded(){
    var e = document.getElementById('msg');
    e.style.visibility = 'visible';
    e.innerHTML = "salvataggio in corso...";
    }

    function whenInteractive(){
    var e = document.getElementById('msg');
    e.style.visibility = 'visible';
    e.innerHTML = "ricezione dati...";
    }

    function whenCompleted(){

    var e = document.getElementById('msg');

    // Controllo che i dati siano stati processati e che
    // abbia ricevuto un messaggio di risposta
    if (ajax.responseStatus && ajax.responseStatus[0] == 200){

    // Deserializzo il response
    // Eseguo il response che contiene una chiamata ad una funzione dell'opener
    // tipo window.opener.show();

    var response = PHPSer.unserialize(ajax.response);

    eval(response);

    var string = "salvato";



    }
    // C'e stato qualche errore con la transazione
    else {
    var string = "si e verificato un errore inatteso"
    }

    e.innerHTML = string;

    }

    // Chiamato all'onChange della checkbox
    function NewsHandl(padre, elm){

    alert(document.title);

    ajax.resetData();

    ajax.setVar('padre', padre);
    ajax.setVar('id', elm.value);

    if(elm.checked == true)
    ajax.setVar('act', 'add');
    else
    ajax.setVar('act', 'del');


    ajax.requestFile = "_ajaxphp/news_tree.php";
    ajax.method = "POST";

    ajax.onLoading = whenLoading;
    ajax.onLoaded = whenLoaded;
    ajax.onInteractive = whenInteractive;
    ajax.onCompletion = whenCompleted;

    ajax.runAJAX();

    }
    cambiando solo la funzione NewsHandl ottenete praticamente la struttura per ogni pagina dell'intero sistema, quindi anche l'opener per capirci funziona con la stessa tecnica. Anche i nomi delle variabili sono uguali ed ho quindi provato a cambiare tutti i nomi delle funzioni e delle variabili ma continua a non funzionare!

    C'è di più, il div msg che all'evento onLoading, onLoaded ecc contiene le varie informazioni dei passaggi NON VIENE MAI MOSTRATO.

    Per finire posso dirvi che con firefox funziona tutto alla grande, è solo il fott**o explorer che non va.

    Qualche idea?

    Se non sono stato chiaro chiedete pure!

    Ciao e grazie
    Conosci te stesso(?)
    (..e allora perchè scassi a me? )

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Funziona tutto, ma solo sull'onClick per explorer... msdn specifica che non esiste quest'evento per la check!
    Conosci te stesso(?)
    (..e allora perchè scassi a me? )

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.