Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 28

Discussione: Link a doppio file PHP

  1. #11
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,521
    Quote Originariamente inviata da Max Della Pena Visualizza il messaggio
    Ciao U235.

    Allora, incollando lo script nella mia pagina in Dreamweaver

    codice:
    <script>
           function conferma1(url, cPage) {            
                let newWin = window.open(url, '_blank', false);
                 newWin.addEventListener("beforeunload", () =>
                        setTimeout(() => {
                            if (confirm("vuoi aprire la pagina "+url+"? Questo canceller� i dati")) {
                                window.location = cPage;
                            }
                        }, 100))            
            }
        </script>
    Mi da errore di sintassi nella riga

    codice:
    let newWin = window.open(url, '_blank', false);
    Cliccando sul link mi apre la pagina web ma poi quando la chiudo non carica il file cancella con le opzioni cancella o esci.

    Credo che ci sia un errore nella riga che ti ho indicato.
    Max, scusami. Quando ho fatto un test non ho badato al fatto che avevo il Debugger aperto, per cui funzionava, ma non funziona senza... credo sia un problema di thread.
    Inoltre non saprei perché ti da errore di sintassi li, ma non approfondisco nemmeno perché tanto non va senza il Debugger collegato.

    Dal momento che ti ho fatto perdere tempo ho deciso di fornirti una qualche soluzione alternativa:

    codice:
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style>
            #box {
                display: none;
                position: absolute;
                left: 0;
                right: 0;
                bottom: 0;
                top: 0px;
                border: none;
                z-index: 9;
            }
            #iFrame {
                width:99%;
                height:98%;
            }
            #chiudi {
                position: absolute;
                right: 0;
                top: 0;
                display: inline-block;
                width: 20px;
                height: 20px;
                border: 7px solid #f56b00;
                background: linear-gradient(45deg, rgba(0,0,0,0) 0%,rgba(0,0,0,0) 43%,#fff 45%,#fff 55%,rgba(0,0,0,0) 57%,rgba(0,0,0,0) 100%), linear-gradient(135deg, #f56b00 0%,#f56b00 43%,#fff 45%,#fff 55%,#f56b00 57%,#f56b00 100%);
            }
        </style>
    </head>
    <body>
        <div>
            <a href="#" onclick=conferma1('www.miosito.it/viewurl.php?id=<? echo "$row[id]";?>','www.miosito.it./cancellaclienti.php?id=<? echo "$row[id]";?>')>web</a><br />
        </div>
        <div id="box">
            <div>
                <a href="#" id="chiudi"></a>
            </div>
            <iframe  id="iFrame"></iframe>
        </div>
        <script>
            function conferma1(url, cPage) {
                var iframe = document.getElementById("iFrame");
                var box = document.getElementById("box");
                var chiudi = document.getElementById("chiudi");
                iframe.setAttribute("src", url);
                box.style.display = "block";
                chiudi.addEventListener("click", () => {
                    box.style.display = "none";
                    var new_element = chiudi.cloneNode(true);
                    chiudi.parentNode.replaceChild(new_element, chiudi);
                    setTimeout(() => {
                        if (confirm("vuoi cancellare il dato " + url + "?"))
                            if (confirm("Vuoi cambiare pagina?"))
                                window.location = cPage;
                            else
                                fetch(cPage)
                                    .then(data => {
                                        alert(data.ok ? "dati cancellati" : "errore");
                                    })
                                    .catch(e => {
                                        alert(e);
                                    });
                    });
                });
            }
        </script>
    </body>
    </html>
    In questo caso non si apre una finestra, ma un iframe che puoi chiudere cliccando sulla x in alto a destra, una volta chiusa comparir� il confirm per chiederti se cancellare o meno, cliccando su si mi sono permesso di mettere la scelta (si apre un altro confirm, ma poi puoi scegliere direttamente una soluzione tra le due senza mettere il confirm) tra rimanere nella stessa pagina chiamando la pagina di cancellazione in background, oppure cambiare direttamente pagina andando alla pagina di cancellazione.

    Qui puoi vedere come funziona. Tieni presente che molti siti (come nel caso dei link in questa pagina di esempio) non permettono di visualizzare la pagina in un iframe, ma nel tuo caso mi pare di capire che usi il tuo dominio stesso (non fai chiamate a domini esterni), per cui non dovresti avere problemi.
    In ogni caso puoi vedere il suo funzionamento. Una volta chiuso se scegli di cancellare i dati e di non cambiare pagina, un alert ti avviserà quando il caricamento della pagina di cancellazione è stata caricata (si presume che essa abbia cancellato) oppure di avviserà che c'è stato un errore (nel primo link da messaggio di errore, mentre nel secondo simula l'andata a buon fine).

  2. #12
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,521
    .

  3. #13
    Utente di HTML.it L'avatar di Max Della Pena
    Registrato dal
    Jan 2014
    residenza
    Udine
    Messaggi
    365
    Quote Originariamente inviata da U235 Visualizza il messaggio
    Max, scusami. Quando ho fatto un test non ho badato al fatto che avevo il Debugger aperto, per cui funzionava, ma non funziona senza... credo sia un problema di thread.
    Inoltre non saprei perché ti da errore di sintassi li, ma non approfondisco nemmeno perché tanto non va senza il Debugger collegato.

    Dal momento che ti ho fatto perdere tempo ho deciso di fornirti una qualche soluzione alternativa:

    codice:
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style>
            #box {
                display: none;
                position: absolute;
                left: 0;
                right: 0;
                bottom: 0;
                top: 0px;
                border: none;
                z-index: 9;
            }
            #iFrame {
                width:99%;
                height:98%;
            }
            #chiudi {
                position: absolute;
                right: 0;
                top: 0;
                display: inline-block;
                width: 20px;
                height: 20px;
                border: 7px solid #f56b00;
                background: linear-gradient(45deg, rgba(0,0,0,0) 0%,rgba(0,0,0,0) 43%,#fff 45%,#fff 55%,rgba(0,0,0,0) 57%,rgba(0,0,0,0) 100%), linear-gradient(135deg, #f56b00 0%,#f56b00 43%,#fff 45%,#fff 55%,#f56b00 57%,#f56b00 100%);
            }
        </style>
    </head>
    <body>
        <div>
            <a href="#" onclick=conferma1('www.miosito.it/viewurl.php?id=<? echo "$row[id]";?>','www.miosito.it./cancellaclienti.php?id=<? echo "$row[id]";?>')>web</a><br />
        </div>
        <div id="box">
            <div>
                <a href="#" id="chiudi"></a>
            </div>
            <iframe  id="iFrame"></iframe>
        </div>
        <script>
            function conferma1(url, cPage) {
                var iframe = document.getElementById("iFrame");
                var box = document.getElementById("box");
                var chiudi = document.getElementById("chiudi");
                iframe.setAttribute("src", url);
                box.style.display = "block";
                chiudi.addEventListener("click", () => {
                    box.style.display = "none";
                    var new_element = chiudi.cloneNode(true);
                    chiudi.parentNode.replaceChild(new_element, chiudi);
                    setTimeout(() => {
                        if (confirm("vuoi cancellare il dato " + url + "?"))
                            if (confirm("Vuoi cambiare pagina?"))
                                window.location = cPage;
                            else
                                fetch(cPage)
                                    .then(data => {
                                        alert(data.ok ? "dati cancellati" : "errore");
                                    })
                                    .catch(e => {
                                        alert(e);
                                    });
                    });
                });
            }
        </script>
    </body>
    </html>
    In questo caso non si apre una finestra, ma un iframe che puoi chiudere cliccando sulla x in alto a destra, una volta chiusa comparir� il confirm per chiederti se cancellare o meno, cliccando su si mi sono permesso di mettere la scelta (si apre un altro confirm, ma poi puoi scegliere direttamente una soluzione tra le due senza mettere il confirm) tra rimanere nella stessa pagina chiamando la pagina di cancellazione in background, oppure cambiare direttamente pagina andando alla pagina di cancellazione.

    Qui puoi vedere come funziona. Tieni presente che molti siti (come nel caso dei link in questa pagina di esempio) non permettono di visualizzare la pagina in un iframe, ma nel tuo caso mi pare di capire che usi il tuo dominio stesso (non fai chiamate a domini esterni), per cui non dovresti avere problemi.
    In ogni caso puoi vedere il suo funzionamento. Una volta chiuso se scegli di cancellare i dati e di non cambiare pagina, un alert ti avviserà quando il caricamento della pagina di cancellazione è stata caricata (si presume che essa abbia cancellato) oppure di avviserà che c'è stato un errore (nel primo link da messaggio di errore, mentre nel secondo simula l'andata a buon fine).
    Ciao ho provato a visualizzare come funziona, vedo che mi apre una piccola finestra in basso a destra che non è sufficente per navigare nel sito aperto e valutare se cancellare o meno il dato.

    Ti ringrazio per iul suggerimento e il lavoro che hai fatto ma mi sembra troppo complicato per me inserirlo nella mia pagina php.

    Questa parte

    codice:
    </div>
        <div id="box">
            <div>
                <a href="#" id="chiudi"></a>
            </div>
            <iframe  id="iFrame"></iframe>
        </div>
    dovrei inserirla qui, ci ho provato ma aggiunge parti alla tabella

    codice:
    <td width="50" align="left" <?php if ($row['viewurl'] =="SI") { echo 'bgcolor="#ACFF08"'; }?>bgcolor="<? echo "$coloresfondo"; ?>" class="Stile5"><div><a href='www.miosito/viewurl.php?id=<? echo "$row[id]";?>' target="_blank">WEB</a></div></td>
    Farò delle prove.
    Mi chiedo, caro Alberto, se questo antifascismo rabbioso che viene sfogato nelle piazze oggi a fascismo finito, non sia in fondo un’arma di distrazione che la classe dominante usa su studenti e lavoratori per vincolare il dissenso.

  4. #14
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,521
    Quote Originariamente inviata da Max Della Pena Visualizza il messaggio
    Ciao ho provato a visualizzare come funziona, vedo che mi apre una piccola finestra in basso a destra che non � sufficente per navigare nel sito aperto e valutare se cancellare o meno il dato.

    Ti ringrazio per iul suggerimento e il lavoro che hai fatto ma mi sembra troppo complicato per me inserirlo nella mia pagina php.

    Questa parte

    codice:
    </div>
        <div id="box">
            <div>
                <a href="#" id="chiudi"></a>
            </div>
            <iframe  id="iFrame"></iframe>
        </div>
    dovrei inserirla qui, ci ho provato ma aggiunge parti alla tabella

    codice:
    <td width="50" align="left" <?php if ($row['viewurl'] =="SI") { echo 'bgcolor="#ACFF08"'; }?>bgcolor="<? echo "$coloresfondo"; ?>" class="Stile5"><div><a href='www.miosito/viewurl.php?id=<? echo "$row[id]";?>' target="_blank">WEB</a></div></td>
    Far� delle prove.
    Nell'esempio che hai visto � piccola perch� � solo un sito per testare, la finestra che vedi rappresenta tutta la pagina, ma in miniatura. Usandola nella tua pagina sarebbe a tutto schermo.
    questa parte:
    codice:
    <div id="box">
            <div>
                <a href="#" id="chiudi"></a>
            </div>
            <iframe  id="iFrame"></iframe>
        </div>
    
    
    ....//altro markup 
    
    
    <td width="50" align="left" <?php if ($row['viewurl'] =="SI") { echo 'bgcolor="#ACFF08"'; }?>bgcolor="<? echo "$coloresfondo"; ?>" class="Stile5"><div><a href='www.miosito/viewurl.php?id=<? echo "$row[id]";?>' target="_blank">WEB</a></div></td>
    La puoi mettere ovunque nella tua pagina (sempre dentro il tag body), grazie al css sar� non visibile, ma al click nel (nei) link la tua pagina mostrer� a schermo intero (diciamo "praticamente" a schermo intero) il contenuto del link da visitare, pi� la x per chiudere. Quello che dovrai mettere nella tabella sarà solo il link.
    Per capirci:
    codice:
    <td width="50" align="left" <?php if ($row['viewurl'] =="SI") { echo 'bgcolor="#ACFF08"'; }?>bgcolor="<? echo "$coloresfondo"; ?>" class="Stile5"><div>
    <a href="#" onclick=conferma1('www.miosito.it/viewurl.php?id=<? echo "$row[id]";?>','www.miosito.it./cancellaclienti.php?id=<? echo "$row[id]";?>')>web</a>
    </div></td>
    Ho l'impressione che tu non abbia aggiunto il css, per farlo devi aggiungere la parte con il tag style nella tua pagina (dentro il tag head):
    codice:
    <style>
            #box {
                display: none;
                position: absolute;
                left: 0;
                right: 0;
                bottom: 0;
                top: 0px;
                border: none;
                z-index: 9;
            }
            #iFrame {
                width:99%;
                height:98%;
            }
            #chiudi {
                position: absolute;
                right: 0;
                top: 0;
                display: inline-block;
                width: 20px;
                height: 20px;
                border: 7px solid #f56b00;
                background: linear-gradient(45deg, rgba(0,0,0,0) 0%,rgba(0,0,0,0) 43%,#fff 45%,#fff 55%,rgba(0,0,0,0) 57%,rgba(0,0,0,0) 100%), linear-gradient(135deg, #f56b00 0%,#f56b00 43%,#fff 45%,#fff 55%,#f56b00 57%,#f56b00 100%);
            }
        </style>
    Se hai gi� dei tag "style" nella pagina semplicemente aggiungi il contenuto (togli i tag style).
    Infine ricordati di aggiungere lo script.
    Ultima modifica di U235; 06-08-2022 a 23:30

  5. #15
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,521
    .

  6. #16
    Utente di HTML.it L'avatar di Max Della Pena
    Registrato dal
    Jan 2014
    residenza
    Udine
    Messaggi
    365
    Ciao U235, sembra funzionare tutto, stasera il server è lento e ci mette molto a caricare le pagine.

    Mi si apre la pagina per visionare il sito del cliente e quando la chiudo mi chiede se voglio o meno cancellare il dato, se scelgo no mantiene il dato se sceglo si lo cancella.

    Ti ringrazio per il prezioso aiuto.

    Volendo essere ancor più pignoli, oltre ad aprire il link, una volta chiusa la pagina potrei accedere alla cancellazione e in caso negativo caricare un ulteriore pagina modifica.php?

    Avrei così tutte le opzioni in sequenza.

    Grazie.
    Mi chiedo, caro Alberto, se questo antifascismo rabbioso che viene sfogato nelle piazze oggi a fascismo finito, non sia in fondo un’arma di distrazione che la classe dominante usa su studenti e lavoratori per vincolare il dissenso.

  7. #17
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,521
    Quote Originariamente inviata da Max Della Pena Visualizza il messaggio
    ...

    Volendo essere ancor più pignoli, oltre ad aprire il link, una volta chiusa la pagina potrei accedere alla cancellazione e in caso negativo caricare un ulteriore pagina modifica.php?

    Avrei così tutte le opzioni in sequenza.

    Grazie.
    Ciao Max,
    onestamente a me non piacciono tanto gli alert, li ho usati solo per mostrarti come fare, ma se a te vanno bene...
    Per avere un terzo link da eseguire devi aggiungerlo alla funzione come parametro ed aggiungerlo nel link:

    codice:
    function conferma1(url, cPage, mPage)
    qui mPage rappresenta la pagina per la modifica. Poi nel link devi aggiungere l'indirizzo:
    codice:
    <a href="#" onclick=conferma1('www.miosito.it/viewurl.php?id=<? echo "$row[id]";?>','www.miosito.it./cancellaclienti.php?id=<? echo "$row[id]";?>','indirizzo pagina per la modifica')>web</a>
    ed infine devi aggiungere un if nel punto in cui vuoi che venga chiesto, ad esempio:

    codice:
    if (confirm("vuoi cancellare il dato " + url + "?"))
                            if (confirm("Vuoi cambiare pagina?"))
                                window.location = cPage;
                            else
                                fetch(cPage)
                                    .then(data => {
                                        alert(data.ok ? "dati cancellati" : "errore");
                                    })
                                    .catch(e => {
                                        alert(e);
                                    });
    else
             if (confirm("vuoi modificare il dato " + url + "?"))
                      window.location = mPage;   
    in questo caso chiede prima se vuoi cancellarlo, dopo nel caso si scelga di non cancellarlo chiede se vuoi modificarlo, in caso positivo ti manda al terzo link, quello della modifica. In questo caso non ha senso chiedere se vuoi eseguire in background la modifica, in quanto immagino voglia vedere cosa modificare, per cui ti porta direttamente nella pagina di modifica.

  8. #18
    Utente di HTML.it L'avatar di Max Della Pena
    Registrato dal
    Jan 2014
    residenza
    Udine
    Messaggi
    365
    Quote Originariamente inviata da U235 Visualizza il messaggio
    Ciao Max,
    onestamente a me non piacciono tanto gli alert, li ho usati solo per mostrarti come fare, ma se a te vanno bene...
    Per avere un terzo link da eseguire devi aggiungerlo alla funzione come parametro ed aggiungerlo nel link:

    codice:
    function conferma1(url, cPage, mPage)
    qui mPage rappresenta la pagina per la modifica. Poi nel link devi aggiungere l'indirizzo:
    codice:
    <a href="#" onclick=conferma1('www.miosito.it/viewurl.php?id=<? echo "$row[id]";?>','www.miosito.it./cancellaclienti.php?id=<? echo "$row[id]";?>','indirizzo pagina per la modifica')>web</a>
    ed infine devi aggiungere un if nel punto in cui vuoi che venga chiesto, ad esempio:

    codice:
    if (confirm("vuoi cancellare il dato " + url + "?"))
                            if (confirm("Vuoi cambiare pagina?"))
                                window.location = cPage;
                            else
                                fetch(cPage)
                                    .then(data => {
                                        alert(data.ok ? "dati cancellati" : "errore");
                                    })
                                    .catch(e => {
                                        alert(e);
                                    });
    else
             if (confirm("vuoi modificare il dato " + url + "?"))
                      window.location = mPage;   
    in questo caso chiede prima se vuoi cancellarlo, dopo nel caso si scelga di non cancellarlo chiede se vuoi modificarlo, in caso positivo ti manda al terzo link, quello della modifica. In questo caso non ha senso chiedere se vuoi eseguire in background la modifica, in quanto immagino voglia vedere cosa modificare, per cui ti porta direttamente nella pagina di modifica.
    Grazie U235, stasera ci provo.
    Mi chiedo, caro Alberto, se questo antifascismo rabbioso che viene sfogato nelle piazze oggi a fascismo finito, non sia in fondo un’arma di distrazione che la classe dominante usa su studenti e lavoratori per vincolare il dissenso.

  9. #19
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,521
    Quote Originariamente inviata da Max Della Pena Visualizza il messaggio
    Grazie U235, stasera ci provo.
    Di nulla Max

  10. #20
    Utente di HTML.it L'avatar di Max Della Pena
    Registrato dal
    Jan 2014
    residenza
    Udine
    Messaggi
    365
    Ciao U235.

    Ho fatto come mi hai indicato ma non funziona, non mi apre il sito web e non va avanti con l'opzione cancella e poi modifica.

    Potresti verificare se questo è corretto?

    Grazie.

    codice:
    <script>
            function conferma2(url, cPage, mPage) {
                var iframe = document.getElementById("iFrame");
                var box = document.getElementById("box");
                var chiudi = document.getElementById("chiudi");
                iframe.setAttribute("src", url);
                box.style.display = "block";
                chiudi.addEventListener("click", () => {
                    box.style.display = "none";
                    var new_element = chiudi.cloneNode(true);
                    chiudi.parentNode.replaceChild(new_element, chiudi);
                    setTimeout(() => {
                        if (confirm("vuoi cancellare il dato " + url + "?"))
                            if (confirm("Vuoi cambiare pagina?"))
                                window.location = cPage;
                            else
                                fetch(cPage)
                                    .then(data => {
                                        alert(data.ok ? "dati cancellati" : "errore");
                                    })
                                    .catch(e => {
                                        alert(e);
                                    });
                                    else
             if (confirm("vuoi modificare il dato " + url + "?"))
                      window.location = mPage;   
                    });
                });
            }
        </script>
    Mi chiedo, caro Alberto, se questo antifascismo rabbioso che viene sfogato nelle piazze oggi a fascismo finito, non sia in fondo un’arma di distrazione che la classe dominante usa su studenti e lavoratori per vincolare il dissenso.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.