2012-05-18 6 views
5

OK, non proprio sicuro se questo è possibile, ma ho pensato di chiedere comunque :)Usa JavaScript dialogo confermare per effettuare una chiamata di PHP in background

Ho una pagina HTML che contiene alcune informazioni e un link. Il collegamento chiama una finestra di dialogo di conferma JavaScript. Se l'utente seleziona OK, voglio chiamare una funzione in un file PHP, ma sullo sfondo, io non voglio cambiare pagina, ricaricare o altro.

È possibile?

Grazie

T

risposta

6

Usa AJAX. Di seguito utilizza jQuery:

if(confirm('Are you sure?')) { 
    $.ajax({ 
     url: '/path/to/file.php', 
     data: 'url=encoded&query=string', // Can also be an object 
     success: function(output) { 
      // This function is called after the PHP file completes. 
      // The variable passed in is a string containing all output of 
      // your PHP script (i.e. echo/print) 
     } 
    }); 
} 

Per ulteriori informazioni, consultare la documentazione di jQuery per AJAX. Se non è possibile utilizzare jQuery, ci sono molti tutorials sull'utilizzo di JavaScript nativo per effettuare richieste AJAX.

Se si restituisce una grande quantità di dati alla funzione di successo da PHP, varrebbe la pena di restituire i dati da PHP come JSON encoded array, che può essere tranquillamente parsed lato client in un oggetto JavaScript.

3
$('.LinkClass').click(function(){ 

    if(confirm('Is it OK?')) { 

    $.ajax({ 
     url: 'action.php', 
     type: 'POST', 
     data: 'data=value', // Can also be an object 
     success: function(data) { 
      // Do Nothing 
     }, 
     error: function(){ 
      alert('Error'); 
     } 
    }); 

    } 

}); 
Problemi correlati