Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833

    pagina riesegue le funzioni al ricaricamento

    ciao, ho un altro problema, mi sono accorto che la pagina madre
    riesegue delle funzioni precedentemente fatte quando viene ricaricata.

    es.

    function addobjec()
    {
    window.open('','nome','width=340,height=195,left=1 22,top=287,location=no')
    document.modulo.target="nome";
    document.modulo.action="addobject.php";
    document.modulo.submit();
    }

    poi chiamo un'altra pagina, stessa maniera, che cancella l'oggetto appena creato
    solo in questa popup c'e' il close e il refresh della madre e questa quando si ricarica
    mi riesegue la funzione addobject.php, quindi l'oggetto non si cancella mai,
    almeno che non esco dalla pagina e poi ci torno.

    Suggerimenti

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998

    Re: pagina riesegue le funzioni al ricaricamento

    Originariamente inviato da guarnieri
    ciao, ho un altro problema, mi sono accorto che la pagina madre
    riesegue delle funzioni precedentemente fatte quando viene ricaricata.

    es.

    function addobjec()
    {
    window.open('','nome','width=340,height=195,left=1 22,top=287,location=no')
    document.modulo.target="nome";
    document.modulo.action="addobject.php";
    document.modulo.submit();
    }

    poi chiamo un'altra pagina, stessa maniera, che cancella l'oggetto appena creato
    solo in questa popup c'e' il close e il refresh della madre e questa quando si ricarica
    mi riesegue la funzione addobject.php , quindi l'oggetto non si cancella mai,
    almeno che non esco dalla pagina e poi ci torno.

    Suggerimenti
    Non ci ho capito nulla... quale oggetto dovrebbe cancellarsi secondo te? come richiami la funzione addobjec()? dov'e' il resto della pagina?

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    Sbaglio mio, non sono stato chiaro.

    Allora in pratica, ho una pagina che visualizza degli oggetti sotto mirroring (sono dei record
    di un file del db2) in questa pagina ci sono dei bottoni, aggiungi oggetto, modifica, cancella ecc..

    La sequenza che mi crea l'errore e':
    1 - si preme il tasto aggiungi oggetto
    2 - si modifica l'oggetto appena aggiunto
    3 - si cancella l'oggetto appena aggiunto

    quando la cancellazione dell'oggetto e' stata fatta, questa popup si chiude e fa il refresh
    della pagina madre, dove ho premuto i tre tasti, quando la madre fa il refresh mi riesegue
    la funzione di addobject.

    Posto un po di codice per farmi capire meglio,:

    Pagina madre
    function addobjec()
    {
    window.open('','nome','width=340,height=195,left=1 22,top=287,location=no')
    document.modulo.target="nome";
    document.modulo.action="addobject.php";
    document.modulo.submit();
    }

    <input type="button" value="Add object " onClick="javascript:addobjec()">
    La popup addobject chiama un programma CL che aggiunge il record, e alla fine fa un
    print '<script>window.opener.location.reload(true);self. close();</script>';

    Ora sono nella madre e l'oggetto e' stato aggiunto, ma se premo il tasto
    cancella oggetto e faccio la stessa cosa dell'aggiunta, e anche qui il popup fa
    print '<script>window.opener.location.reload(true);self. close();</script>';

    ADESSO E' IL PROBLEMA

    quando il popup fa il refresh della madre, questa per qualche motivo mi riaggiunge l'oggetto
    senza che si abbia premuto il relativo tasto.

    Se invece chiudo il popup io, chiudo la pagina madre io e la ricarico da una nuova scheda
    l'oggetto giustamente non c'e' piu' perche' non ha rieseguito l'aggiunta.

    Solo che non capisco come mai il refresh riesegue le azioni che dovrebbe fare solo se premuto il tasto.

    Ciao grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    uppetto, da solo non riesco a scoprire il motivo del malfunzionamento.

    Ciao

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Facci almeno vedere il codice degli altri tasti...

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    Buona settimana (speriamo), posto la gestione di alcuni degli altri bottoni.

    codice:
    <SCRIPT LANGUAGE="JavaScript">
    function addobjec()
    {
    window.open('','nome','width=340,height=195,left=122,top=287,location=no') 
    document.modulo.target="nome";
    document.modulo.action="addobject.php";
    document.modulo.submit();
    }
    </script>
    
    
    <SCRIPT LANGUAGE="JavaScript">
    function endmirrorin()
    {
    document.modulo.endmirroring.value=1;
    document.modulo.action="vam407.php";
    document.modulo.submit();
    }
    </script>
    
    <SCRIPT LANGUAGE="JavaScript">
    function remov()
    {
    window.open('','nome','width=345,height=180,left=122,top=287,location=no') 
    document.modulo.target="nome";
    document.modulo.action="remove.php";
    document.modulo.submit();
    }
    </script>
    
    ........
    
    <input type="button" value="Change              " onClick="javascript:change()">
    <input type="button" value="Send object       " onClick="javascript:sendob()">
    <input type="button" value="End mirroring  " onClick="javascript:endmirrorin()">
    <input type="button" value="Add object        " onClick="javascript:addobjec()">

    e mettiamo che abbia gia' aggiunto un oggetto e che chiami la pagina per cancellare l'oggetto. Posto la parte di codice che viene eseguito dalla pagina che cancella l'oggetto
    e questa call al programma funziona, nel senso che l'oggetto viene cancellato

    codice:
    <html>
    <?php
    include("connection.inc");
    session_start();
    
    $remove= $_POST['remove'];
    
    if ($remove=="1") {
    $LNKLIB     = $_POST["LNKLIB"];
    $lib        = $_POST["costumerMRJID"];
    $obj        = $_POST["costumerMRLIB"];
    $typ        = $_POST["costumerMRMBR"];
    $scelta     = $_POST['scelta'];
    
    $typ = trim($typ); 
    if ($typ=='*PF'){
    $typ='*FILE';
    }   
    if ($typ=='*LF'){
    $typ='*FILE';
    }   
    
    $_SESSION['lnklib'] = $LNKLIB;
    $_SESSION['lib'] = $lib;
    $_SESSION['obj'] = $obj;
    $_SESSION['typ'] = $typ;
    $_SESSION['scelta'] = $scelta;
    
    /* Errore durante la connessione al server */
    if (!$conn) die("
    1 connessione".i5_errno()." msg=".i5_errormsg()); 
    
    /* Definizione parametri da passare al programma */
    $description = array(
    array("Name"=>"lnklib", "IO"=>I5_IN, "Type"=>I5_TYPE_CHAR, "Length"=>"10"),
    array("Name"=>"lib", "IO"=>I5_IN, "Type"=>I5_TYPE_CHAR, "Length"=>"10"),
    array("Name"=>"obj", "IO"=>I5_IN, "Type"=>I5_TYPE_CHAR, "Length"=>"10"),
    array("Name"=>"typ", "IO"=>I5_IN, "Type"=>I5_TYPE_CHAR, "Length"=>"10"),
    array("Name"=>"scelta", "IO"=>I5_IN, "Type"=>I5_TYPE_CHAR, "Length"=>"1"),
    
    );
    		
    /* Apertura programma con la definizione dei parametri */	
    $pgm = i5_program_prepare("VAM400/HSTL03W" , $description);
    
    /* Errore apertura programma */
    if (!$pgm) die("
    2 error. =".i5_errno()." msg=".i5_errormsg());
    
    /* Impostazione parametri di input con le variabili passate dal chiamante con il metodo POST */
    $parmIn = array(
    	"LNKLIB"=>$_SESSION["lnklib"],
    	"LIB"=>$_SESSION["lib"],
    	"OBJ"=>$_SESSION["obj"],
    	"TYP"=>$_SESSION["typ"],
    	"SCELTA"=>$_SESSION["scelta"],
    		);
    /* Richiamo programma */		
    $ret = i5_program_call($pgm, $parmIn);
    
    /* Errore richiamo programma */
    if (!$ret) die("
    call error. Error number=".i5_errno()." msg=".i5_errormsg());
    
    /* Chiusura programma */
    i5_program_close($pgm);
    
    
    
    print '<script>window.opener.document.modulo.target=(_self);</script>';
    print '<script>window.opener.location.reload(true);self.close();</script>';
    
    
    
    
    }

    Il problema e' in nella refresh sopra, nel senso che quando la pagina madre viene
    ricaricaricata riesegue la funzione addobject

    Ora voi sapete dirmi se e' normale che il refresh riesegue le azioni che sono state eseguite
    l'ultima volta, quindi il problema e' normale o e' un errore del mio codice?

    Ps. E' importante per me capire come gestire questa situazione.
    Il fatto e' che se metto un bottone che ricarica la pagina madre, dopo questa azione
    funzionerebbe il refresh perche' non riesegue nessuna azione, solo che non e' pensabile
    che un utente prema dopo ogni azione il tasto "refresh", sopratutto perche' questa
    pagina fa una select su un file che a seconda dell'azienda potrebbe avere migliaia di record.

    Ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    Uppettino

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    Ancora con il mio problema, che si verifica quando una pagina madre ha aperto una popup
    e questa si e' chiusa, quando dalla madre premo es. il bottone refresh invece di ricaricarsi su se stessa mi apre una nuova pagina.

    Pero' ho notato questo errore lo da solo se la popup ha emesso un alert e poi e' tornato alla madre, quindi:

    .... Corretta
    i5_command("CHGCURLIB CURLIB($LNKLIB)");
    print '<script>window.opener.document.modulo.target=(_se lf);</script>';
    print '<script>self.close();</script>';
    }

    ....sbagliata
    if ($lib==""){
    print '<script> alert("Selezionare oggetto") </script>';
    print '<script>window.opener.document.modulo.target=(_se lf);</script>';
    print '<script>self.close();</script>';
    }

    Quando si verifica quest'ultima condizione la madre non si ricarica su se stessa ma apre
    una nuova finestra.
    Sapete dirmi perche'?

    Ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    Uppetto.

    E' possibile dire in questo script document.modulo.action="index.php";
    di ricaricarla sulla stessa finestra stessa (_SELF)?

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    833
    Forse e' meglio postare anche la gestione dell'apertura e chiusura della popup

    1) dalla madre quando apre la popup cosi'

    <SCRIPT LANGUAGE="JavaScript">
    function change() {
    window.open('','nome','width=385,height=195,left=1 22,top=287,location=no')
    document.modulo.target="nome";
    document.modulo.action="change.php";
    document.modulo.submit(); }
    </script>

    2) nella popup ritorno alla madre cosi'

    print '<script> alert("Selezionare oggetto") </script>';
    print '<script>window.opener.document.modulo.target=(_se lf);</script>';
    print '<script>self.close();</script>';

    3) nella madre quando faccio il refresh su stessa

    <SCRIPT LANGUAGE="JavaScript">
    function refres()
    {
    document.modulo.refresh.value=1;
    document.modulo.action="vam407.php";
    document.modulo.submit();
    }
    </script>


    Ora me era stato consigliato di gestire (punto 2) questa situazione cosi'
    <script>window.opener.document.modulo.target=(_sel f);</script>
    pero' non funziona.

    Mi dite come fare per non far aprire una nuova pagina quando premo refresh?
    Non so dove' l'errore e come risolverlo.
    Ciao

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.