• User Attivo

    Richiamare la pagina alla chiusura di un POPUP

    Ciao, ragazzi.

    Noella pagina "effettua ordine" del mio sito, l'utente ha la possibilità di modificare i dati di fatturazione e di spedizione.
    Queste modifiche vengono fatte mediante dei forms, richiamati con 2 pulsanti, e visualizzati con finestre popup.

    In queste finestre popup, una volta modificati i campi, si clicca sul pulsante "modifica dati" per avviare la query di modifica.
    Adesso, però, una volta cliccato questo pulsante, compare un semplice messaggio (alert).

    Io vorrei inserire invece una funzione che
    a) chiude la finestra popup;
    b) richiama la pagina precedente (effettua ordine), e ne effettua il refresh, in modo che vengano visualizzati i dati aggiornati.

    E' possibile fare ciò?


  • User Attivo

    io, per refreshare la pagina che apre il popup, uso
    <body onunload="Javascript:window.opener.location.reload();">

    mentre per chiudere window.close();
    io lo uso come link ma credo tu lo possa mettere anche onload


  • User Attivo

    Ho provato, ma non sono riuscito ad utilizzare il tuo script.
    Saresti così gentile da spiegarmi come utilizzarlo?

    Grazie per la pazienza. 🙂


  • User Attivo

    allora
    dalla pagina "madre" apri il popup con un js tipo
    window.open (url , nome , "width=500,height=600,resizeable=no,scrollbars=yes");

    dopodichè dentro l'html del popup metti
    <body onunload="javascript:window.opener.location.reload ();">

    l'effetto è che quando chiudi il popup la pagina che l'ha aperto viene reloadata.

    Altrimenti prova a postare il codice..


  • User Attivo

    Ok, ci sono quasi 😉

    Allora, ho inserito questo:

    
    <body onunload="javascript:window.opener.location.reload ();">
    
    

    subito dopo </head>, nella finestra popup.
    Poi, all'interno della query che aggiorna i dati del form nel popup, ho inserito la funzione javascript che dovrebbe chiudere il popup:

    
    if($action == "mod"){
     $query = "UPDATE utenti SET
     ...... dati....
    
     echo "<script language=\"JavaScript\" type=\"text/javascript\">'window.close()';</script>";
    }
    
    

    Adesso, ottengo che, non appena clicco sul pulsante modifica, viene riaggiornata la pagina che genera il popup, vengono correttamente aggiornati i dati nel database, ma il popup non si chiude.
    Se lo chiudo manualmente, viene nuovamente refreshata la pagina che lo ha generato.

    Idee?


  • User Attivo

    non ne sono sicuro perchè non ho mai provato
    prova a mettere window.close() così
    <img src="immaginebianca.gif" onload="Javascript:window.close();">
    e questa immagine la metti dentro la pagina..

    un pò macchinoso e sicuramente non perfetto 🙂

    altrimenti prova a chiedere nel forum di js, loro ne sapranno sicuramente di più!


  • User Attivo

    Ho risolto facendo in questo modo:

    
    <body onUnload="javascript:window.opener.location.reload (); window.close();">
    
    

    Grazie per l'interessamento

    :ciauz:


  • User

    Ciao a tutti,
    anche io devo fare una cosa del genere, non in php ma in ASP, ma non credo sia fondamentale questo particolare. In dettaglio attraverso un link che apre la finestra popup devo cancellare un file e aggiornare la relativa tabella.

    Ho cercato di seguire le indicazioni di questo post ma senza esito positivo 😞
    Ecco come ho utilizzato il codice:

    nella Pagina madre ho inserito un semplice javascript per aprire la finestra popup:
    [php]
    <script type="text/javascript">
    <!--
    var stile = "top=10, left=10, width=250, height=200, status=no, menubar=no, toolbar=no scrollbar=no";
    function Popup(apri) {
    window.open(apri, "", stile);
    }
    //-->
    </script>
    [/php]sempre nella pagina madre ho quindi il link per aprire la finestra popup dove passo il percorso del file da cancellare e l'id del record da aggiornare, in questo modo:
    [php]
    <a href="javascript:Popup('cancella_immagine.asp?path=<%=fpath%>&id=<%=valueID%>')"><img src="img/icons/delete.png" alt="elimina" width="16" height="16" title="elimina"/></a> Elimina
    [/php]poi nella finestra popup l'ho così strutturata, avrei necessità di chiedere una conferma prima di cancellare il tutto, ho fatto in questo modo:

    [php]
    <%
    'recupero il nome del file da cancellare e id
    strFile = Trim(Request.QueryString("path"))
    newsID = Trim(Request.QueryString("id"))
    %>

    <body onUnload="javascript:window.opener.location.reload (); window.close();">
    <table class="listing fluid" cellpadding="0" cellspacing="0">
    <tbody>
    <tr>
    <th width="100%" height="30" class="formLabel">Eliminazione File</th>
    </tr>
    <%
    if op = "" then
    %>
    <tr class="row1">
    <td height="40" align="center">Confermare eliminazione file immagine: <a href="cancella_immagine.asp?path=<%=strFile%>&id=<%=newsID%>&op=ed">sì</a> no</td>
    </tr>
    <%
    else

    'cancello l'immagine
    strFilePath = strFile
    Set objFso = Server.CreateObject("Scripting.FileSystemObject")
    if objFso.FileExists(strFilePath) then
    objFSO.DeleteFile(strFilePath)'cancello
    end if
    Set objFso = Nothing
    'aggiorno la tabella
    Set objRS = Server.CreateObject("ADODB.Recordset")
    strSQL= "UPDATE " &strDbTable& "news SET n_img = "" WHERE id_news = " & newsID & ";"
    objRS.Open strSQL, DFCon, 3, 3
    Set objRS = Nothing

    %>
    <tr class="row1">
    <td height="40" align="center">Eliminazione avvenuta con successo.</td>
    </tr>
    <%
    end if
    %>
    </tbody>
    </table>
    </body>

    [/php]solo che in questo modo quando clicco su 'SI' per dare l'ultima conferma la popup si chiude e la pagina madre si aggiorna, correttamente, ma senza aver eseguito il codice di eliminazione :gtsad:

    Dove sbaglio?
    Vi ringrazio per l'aiuto
    Elisa :ciauz: