• User

    Javascript window.confirm

    Salve a tutti, ho usato questo javascript:

    <script type="text/javascript" language="javascript">
    function conferma(){
    if(window.confirm("vuoi effettuare questa operazione?")){
    location.href('link di destinazione');
    }else{
    return false;
    }
    }
    </script>

    all'interno di uno script php. Anche se lo script mi chiede conferma per effettuare l'operazione selezionata, se clicco no viene effettuata lo stesso! Dov'è il problema? C'è qualche altro script che mi potrebbe essere d'aiuto?
    Grazie


  • User

    è normale... il php viene processato diretamente sul server... non aspetta mica la risposta che gli dai tu al javascript dal browser... 🙂

    Se vuoi che parta uno script alla conferma del tuo avviso dovresti poggiarti su ajax... ma se ti risulta complicato cerca di raggirare l'ostacolo facendo magari processare la parte successiva alla conferma del javascript su un'altra pagina con un semplice redirect javascript alla confema, anche se non è molto elegante...


  • User

    ciao, grazie per la risposta.
    :arrabbiato: mi son concentrato troppo sullo scritp senza tener conto che il javascript è lato-client.
    Cmq ho visto uno script php che usa il window.confirm di javascript per chiedere conferma e se non si accetta non esegue nessuna operazione.
    sto cercando di analizzare lo script ma ci sono una marea di funzioni :mmm:


  • User

    Un po' tardino per rispondere, ma sono capitato qui solo ora da Google ed è meglio fare qualche precisazione, altrimenti qualcuno potrebbe confondersi qui.

    Combinare PHP e Javascript è possibile. Semplicemente il codice Javascript viene spedito dal server come tutto il resto del testo che compone la pagina web. Si può intervenire sul codice Javascript con PHP così come lo si fa sull'HTML e sui CSS.

    Lo script di Frest non va per un errore presente nella funzione:

    location.href('link di destinazione'); 
    

    location.href è una proprietà che restituisce l'url della pagina corrente e quindi non va da nessuna parte. Questa va sostituita con il metodo:

    window.location.assign('url di destinazione');
    

    Ciao. 🙂