PHP: inserire dati su database tramite form, senza ricaricare la pagina

Ebbene sì, anche a me è capitato di dover creare una pagina in PHP con un form per salvare dei dati su un database dovendo evitare di cambiare pagina o ricaricare la stessa ( via POST ).

Cercando in giro per il web ho trovato un metodo piuttosto semplice e veloce da implementare: utilizzare chiamate AJAX

Come funziona? Tramite javascript si intercetta il clic sul bottone “Esegui” del form che abbiamo creato e si effettua una semplice chiamata “POST” alla pagina nella quale effettuiamo veramente l’ ” insert ” su database.

<script type="text/javascript">
$(document).ready(function() {

 //al click sul bottone del form
 $("#esegui").click(function(){

 //associo variabili
 var nome = $("#nome_cerca").val();  //  nome_cerca è l'ID della input del Form
 var cognome = $("#cognome_cerca").val();
 var sesso = $("#sesso_cerca").val();
 
 
 //chiamata ajax
 $.ajax({

 //imposto il tipo di invio dati (GET O POST)
 type: "POST",

 //pagina da chiamare dove è presente la query
 url: "./modifica.php",

 //dati da inviare
 data: "nome=" + nome + "&cognome=" + cognome + "&sesso=" + sesso,
 dataType: "html",


 success: function(msg)
 {
 $("#risultato-ricerca").html(msg); // aggiunti valori al db 
 },
 error: function()
 {
 alert("Chiamata fallita, si prega di riprovare..."); //callback in caso di errore
 }
 });
 });
});
</script>

Gestiamo quindi il risultato ( valore di ritorno ) della chiamata per mostra il buono od il cattivo esito della chiamata ( “#risultato-ricerca”)

Ecco invece cosa inserire nella pagina  modifica.php:

// catturiamo i dati in POST

$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$sesso = $_POST['sesso'];

// facciamo la query

$strsql="update paziente set nome = '$nome' , cognome = '$cognome'";
 $strsql.="where id ='$id_paz'"; 

 $result = mysql_db_query($database_quale,$strsql);
 if (!$result) {
 die('Invalid query: ' . mysql_error());}
 $numrec=mysql_affected_rows();

// gestiamo il ritorno  ( le classi si riferiscono a foundation 6 )

 if($numrec!= 0){
 //echo '<p>Paziente modificato correttamente</p>'; } //Messaggio che apparirà sotto il form di aggiunta tramite msg
 ?>
 <div class="success callout" data-closable>
 <strong>OK! Paziente <?php echo "$id_paz"; ?> modificato! </strong>
 <button class="close-button" aria-label="Dismiss alert" type="button" data-close>
 <span aria-hidden="true">&times;</span>
 </button>
 </div>
 <?php }
 else { 

 ?>
 <div class="warning callout" data-closable>
 <strong><?php echo 'Si e verificato un errore ' . mysql_error() .''; ?></strong> P
 <button class="close-button" aria-label="Dismiss alert" type="button" data-close>
 <span aria-hidden="true">&times;</span>
 </button>
 </div>

 <?php

 } 



Ecco fatto!

Semplice e veloce 😉

 

 

0 comments on “PHP: inserire dati su database tramite form, senza ricaricare la paginaAdd yours →

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *