Eseguire funzione php senza ricaricare pagina?

JackIlPazzo

Utente Attivo
25 Lug 2014
69
0
6
Ciao a tutti,

ho bisogno di creare uno script che esegua il salvataggio di alcuni parametri senza ricaricare la pagina, attualmente io dispongo di una classe chiamata main.phè al cui interno ho due funzioni, una che crea l'html, ed ha questa struttura:

Codice:
function create()
{
    echo "
    <form action='#' method='post'>
        Name <input type='text' name='nome'>
        Col <input type='text' name='colore'>
        Plan <select name='planning'><option value='p1'>p1</option></select>
        <input type='button' value='inserisci' name='inserisci'>
        <input type='button' value='register' name=register'
    </form>";
}

la funzione create() viene richiamata da un altro file html per far comparire il form.
sempre nella main.php ho la funzione populate(), questa contiene semplicemente la query di inserimento.
Quello che voglio fare essenzialmente è eseguire la funzione populate quando il pulsante register viene premuto, infatti ci sono due pulsanti nel form di create.
Mi chiedo come posso fare questo? Ho provato con ajax ma non l'ho mai usato per queste situazioni quindi chiedo il vostro aiuto.

Ricapitolando in un file html viene richiamata la funzione create:

Codice:
<?php

require_once('main.php');
create();

?>

l'utente clicca su register e io eseguo populate che prende i dati dal form e li spedisce nel database, il tutto senza ricaricare la pagina. Chi può mostrarmi per favore come fare? Mi sto sbattendo da oggi pomeriggio.
 
Facciamo un esempio.
Prova così, modifica in questo modo:

PHP:
function create()
{
    echo "
    <form  method='post'>
        Name <input type='text' name='nome' id='nome'>
        Col <input type='text' name='colore' id='colore'>
        Plan <select name='planning' id='planning'><option value='p1'>p1</option></select>
        <button type='submit' id='reg'>Regiter</button>
    </form>";
}

PHP:
<html>
<body>
<?php

require_once('main.php');
create();

?>
<div id="esito"></div><--! questo div è per contenere un eventuale messaggio di avvenuto inserimento dati nel db-->
<script>
  	$("#reg").click(function(e){
		e.preventDefault();
		var nome = $("#nome").val();
		var colore = $("#colore").val();
		var planning = $("#planning").val();
		$.ajax({
			type: "POST",
			url: "main.php",
			data: {  nome: nome,
				   colore: colore,
			           planning: planning}
		})
		.done(function( msg ) {
			$('#esito').html(msg);
		})
			.fail(function() {
			alert('Si è verificato un errore tecnico. Riprovare.');
		});
	});


  </script>
</body>
</html>
 

Discussioni simili