Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 19 di 56
  • livello intermedio
Indice lezioni

Form e inserimento dei dati

Proseguiamo con lo sviluppo della nostra applicazione basata su PHP e MySQLi implementando il form per l'invio dei dati e la funzione per il salvataggio dei dati.
Proseguiamo con lo sviluppo della nostra applicazione basata su PHP e MySQLi implementando il form per l'invio dei dati e la funzione per il salvataggio dei dati.
Link copiato negli appunti

La pagina di default della nostra applicazione mostrerà la lista dei record già al primo accesso, dato che però la tabella del database sarà inizialmente vuota, cominceremo ad occuparci dell'inserimento, ovvero della creazione del form e della quary per l'invio dei dati.

Il form per l'invio dei dati

Quando la variabile $azione sarà valorizzata come form chiameremo la funzione form() che creerà un semplice modulo HTML e lo restituirà alla variabile $contenuto:

function form() {
	global $id;
	$out='';
	$out.='<form name="info" action="?" method="post">';
	$out.='<input type="hidden" id="id" name="id" value="'.$id.'">';
	$out.='<input type="hidden" id="azione" name="azione" value="salva">';
	$out.='<label for="nome">Nome</label><br /><input type="text" id="nome" name="nome"><br />';
	$out.='<label for="cognome">Cognome</label><br /><input type="text" id="cognome" name="cognome"><br />';
	$out.='<label for="email">Email</label><br /><input type="email" id="email" name="email"><br />';
	$out.='<input type="submit" class="btn btn-success" value="Salva">';
	$out.='</form>';
	return($out);
	}

In questa funzione compare la variabile $id che servirà per le operazioni che prevedono l'uso della chiave primaria, in ogni caso nello schema della pagina sarà sempre presente, pertanto andremo a leggere il valore della variabile e lo filtreremo con filter_var() per accertarci che contenga solo numeri. Inseriremo questo codice all'inizio della pagina, immediatamente prima della lettura di $azione:

$id = 0;
if(isset($_REQUEST['id'])) {$id = filter_var($_REQUEST['id'], FILTER_SANITIZE_NUMBER_INT);}

La keyword global darà visibilità alla variabile all'interno della funzione.

Funzione per l'inserimento dei dati

A questo punto il form è pronto, verrà compilato e inviato alla pagina stessa come specificato nell'action; la variabile $azione e l'id verranno invece spediti tramite dei campi hidden inseriti nel form, non è infatti utile che l'utente veda o possa modificare questi valori.

Ricaricando la pagina con azione = salva l'azione sarà intercettata dal primo switch, verrà quindi chiamata la funzione salva():

function salva() {
	global $id, $mysqli;
	$nome = $_REQUEST["nome"];
	$cognome = $_REQUEST["cognome"];
	$email = $_REQUEST["email"];
	if($id==0){
		$sql = 'insert into utenti(nome, cognome, email) values(?, ?, ?)';
		$result = $mysqli->prepare($sql);
		$result->bind_param('sss', $nome, $cognome, $email);
		$result->execute();
		}
	}

Schematicamente abbiamo questi passaggi:

  1. definizione della visibilità delle variabili ($id e connessione al database);
  2. lettura dei dati passati dal form;
  3. memorizzazione nelle variabili;
  4. se l'id è uguale a zero, il nostro caso, procederemo con il prepare dell'SQL e la definizione dei segnaposto anonimi per i parametri;
  5. bind dei parametri, rispettando l'ordine sequenziale e usando la keyword s per indicare che si tratterà di stringhe;
  6. esecuzione della query per l'inserimento nella tabella.

A questo punto, un volta eseguita la funzione salva(), la variabile $azione verrà valorizzata come lista e uscendo dal primo switch verrà richiamata la funzione lista().

Ti consigliamo anche