Lezione Precedente Elenco Lezioni Lezione Successiva

Laboratorio di Sistemi Informativi

Modifica e cancellazione dati

Dopo aver visto come implementare le operazioni di visualizzazione e inserimento dati, occupiamoci della modifica dei dati già presenti in archivio e della loro cancellazione.

Modifica

L'operazione di modifica è più complessa che il semplice inserimento, e di solito consta di un processo a 4 fasi:
  1. l'utente identifica i dati che si vogliono eliminare, specificando in qualche modo un valore di chiave primaria;
  2. i dati sono presentati all'utente in una FORM, pronti per essere modificati;
  3. una volta che l'utente ha sottomesso la FORM, i dati sono aggiornati usando il comando SQL UPDATE (il valore chiave ottenuto al passo 1 è usato per identificare la riga da modificare);
  4. l'utente viene rediretto a una pagina con la conferma dell'avvenuta operazione.

Decidiamo di realizzare la fase di 1 modificando la pagina elenco.php, affiancando ad ogni oggetto un link speciale che ci porta alla fase 2 dell'operazione di modifica. Otteniamo la pagina elenco2.php. Na abbiamo anche aprofittato per aggiungere un collegamento alla pagina di inserimento oggetti e i collegamenti alla funzionalità di cancellazione che tratteremo più avanti in questa lezione.

La pagina a cui si salta una volta scelto l'oggetto da modificare deve presentare una FORM, come per la procedura di inserimento. Tuttavia, la FORM deve essere pre-riempita con i dati dell'oggetto selezionato. Per far questo ci colleghiamo al server MySQL, recuperiamo i dati, e specifichiamo i valori iniziali nei vari campi di input. La specifica dei valori iniziali cambia a seconda del tag HTML: per il tag INPUT si specifica il valore iniziale nell'attributo value; per il tag TEXTAREA si specifica il valore iniziale mettendo il testo tra il tag di apertura e il tag di chiusura; per il tag SELECT, si specifica il valore iniziale inserendo l'attributo SELECTED nel tag OPTION inzialmente selezionato. Otteniamo la pagina modifica-form.php

La pagina a cui salta la form, ovvero modifica.php, è molto simile alla pagina di inserimento (inserimento5.php nell'ultima versione). Ovviamente si usa il comando UPDATE invece che INSERT. La differenza principale è che la procedura di modifica ha bisogno del valore di chiave primaria dell'oggetto da modificare: questo valore è stato passato come parametro da elenco2.php a modifica-form.php e quindi non è disponibile in modifica.php, a meno che non si faccia qualcosa a riguardo. A questo serve il tag INPUT di tipo hidden presente in modifica-form.php. Un campo di tipo hidden è un valore presente in una form che viene passato alla pagina successiva come qualunque altro campo di input, ma non è modificabile e non appare sullo schermo.

Sarebbe possibile realizzare una pagina di conferma per l'operazione di modifica simile a quanto fatto per l'operazione di inserimento, ma si è preferito reindirizzare direttamente l'utente alla pagina con l'elenco degli oggetti. L'utente non ha più conferma visiva immediata che l'operazione ha avuto successo, ma l'interazione con l'applicazione diventa più snella.

Riassumendo, i tre file che compongono la procedura di modifica sono elenco2.php, modifica-form.php e modifica.php.

Cancellazione

L'operazione di cancellazione è invece relativamente semplice, ed è composta di tre fasi, come per 'inserimento:
  1. l'utente identifica i dati che si vogliono eliminare, specificando in qualche modo un valore di chiave primaria;
  2. il valore chiave ottenuto al passo 1 è usato per inviare una query SQL DELETE al server;
  3. l'utente viene rediretto a una pagina con la conferma dell'avvenuta operazione.

Tipicamente, tra la fase 1 e 2, si aggiunge una fase intermedia nella quale si chiede conferma all'utente del fatto di voler cancellare veramente quel determinato elemento dalla base di dati (altrimenti un click sulla riga sbagliata ci farebbe perdere irrimediabilmente un oggetto). Otteniamo allora: cancella-form.php e cancella.php. Come nel caso precedente, si è optato per non avere una vera e propria pagina di conferma.

Lezione Precedente Elenco Lezioni Lezione Successiva

Valid HTML 4.01 Transitional Valid CSS!