- 25 Marzo 2011
- 12
- 0
- Miglior risposta
- 0
Con ColdFusion possiamo creare facilmente un sistema per inserire nuovi record nel database. Prima di tutto si crea un modulo che permette l'inserimento delle informazioni; in secondo luogo, il codice che inserisce queste informazioni nel database.
1. salva in un nuovo file inserimento.cfm un modulo creato con <cfform>. Dà ad ogni campo del modulo il nome esatto del corrispondente campo nella tabella ALBUM. Non tutti i campi di un modulo possono essere generati da ColdFusion. Ad esempio, non esiste in CFML una <textarea> o un tag <input type="file">. Là dove possiamo è bene usare il tag <cfinput> per un controllo sui dati obbligatori.
Poiché il form permette anche l'invio di un file, abbiamo dovuto mettere l'attributo enctype="multipart/form-data" nel tag <cfform>.
L'action del form punta allo stesso file che lo contiene, inserimento.cfm. All'interno del file inserimento.cfm aggiungeremo quindi il codice che permette l'inserimento del record: codice che dovrà essere eseguito solamente quando è stato inviato il form. Come abbiamo già visto, l'invio di un form restituisce una serie di variabili con scope "form" e nome quello dei campi del modulo. Se il modulo non è stato inviato, queste variabili non sono esistenti, non sono cioè "definite". In CFML si usa la funzione IsDefined() per controllare se una variabile è definita.
2. Inserisci all'inizio del file inserimento.cfm il controllo per verificare se è definita la variabile form.ALBUM_TITOLO. Quando si invia il modulo, insieme ai contenuti dei vari campi viene inviato un file: <input name="ALBUM_IMG" type="file" size="30">. I byte che compongono quest'immagine sono trasferiti dal client al server. Nel database, però, non dobbiamo inserire questa informazione, ma semplicemente il nome del file. Non solo, il file inviato dovrà essere scritto sul server per poter essere visualizzato nel sito, e più precisamente salvato nella cartella "album" dove risiedono le altre immagini; questo processo si chiama upload (caricamento).
Una volta eseguito l'upload, potremo inserire i vari dati dell'album nel database, compreso il nome dell'immagine appena caricata sul server.
3. Ovviamente, prima di fare l'upload del file dobbiamo assicurarci che il campo ALBUM_IMG non sia vuoto. Anche qui, è sufficiente inserire un <cfif>. Il tag adibito a lavorare con i file è <cffile>. Ad esso è sempre associato un attributo "action" che identifica l'azione che <cffile> deve eseguire: ad esempio, action="write" indicherà a <cffile> di scrivere un file; action="delete" di cancellare un file; action="rename" di rinominare, e così via. Per eseguire l'upload di un file sul server, si utilizza l'attributo action="upload".
E' obbligatorio specificare l'attributo "filefield", che identifica il nome del campo file del modulo; è obbligatorio l'attributo "destination", che indica il percorso assoluto sul server dove deve essere caricato il file. Utilizzando, inoltre, l'attributo nameconflict="makeunique", possiamo dire a ColdFusion di rinominare il file sul server se ne è già presente uno con lo stesso nome.
Molto più semplicemente, basterà scrivere questa riga:
<cffile action="upload" filefield="ALBUM_IMG". per eseguire l'upload di un file nella cartella C:CFusionMXwwwrootdiscotecaalbum.
4. Aggiungi quindi <cffile> in inserimento.cfm quando il file è stato trasferito sul server, possiamo conoscerne il nome utilizzando la variabile "cffile.ServerFile". Questo nome sarà inserito nel nuovo record.
5. Attribuiamo quindi alla variabile form.ALBUM_IMG, proveniente dal form, il valore di cffile.ServerFile.
6. Per inserire il nuovo record nel database, usiamo il tag <cfinsert>. Negli attributi dobbiamo specificare il data source name da utilizzare, la tabella da aggiornare e i campi del modulo da cui provengono le informazioni. Il tag <cfinsert> esegue un INSERT via SQL e riconosce i campi della tabella da aggiornare, in base al nome dei campi del modulo di inserimento: per questo motivo abbiamo dovuto creare il modulo utilizzando gli stessi nomi dei campi del database.
Naturalmente, anziché usare <cfinsert> avremmo potuto scrivere "a mano" la stringa di SQL, che avremmo passato al solito tag <cfquery>. Il <cfquery> corrispondente al <cfinsert> è in questo caso:
<cfquery name="insertrecord" datasource="discoteca">
INSERT INTO ALBUM (ALBUM_TITOLO,ALBUM_AUTORE,ALBUM_ETICH,ALBUM_DESCR, ALBUM_GENERE,ALBUM_IMG)
VALUES ('#form.ALBUM_TITOLO#', '#form.ALBUM_AUTORE#', '#form.ALBUM_ETICH#', '#form.ALBUM_DESCR#', '#form.ALBUM_GENERE#', '#form.ALBUM_IMG#')
</cfquery>.
7. Per concludere, dopo l'inserimento del record inseriamo un messaggio di conferma. Per visualizzarlo dopo l'intestazione del sito, dichiariamo una nuova variabile dopo <cfinsert>.
8. solo nel caso in cui questa variabile sia stata definita potremo mostrare il valore: dopo <cfinclude template="header.cfm"> inseriamo un <cfif> e un <cfoutput>
Grazie, spero di esservi stato utile, non l'ho fatta solo io ma mi so fatto aiutare da mio zio che però non è registrato a Sciax2 Forum.
Questo è tutto By Ispirazione (Ispi) xD
1. salva in un nuovo file inserimento.cfm un modulo creato con <cfform>. Dà ad ogni campo del modulo il nome esatto del corrispondente campo nella tabella ALBUM. Non tutti i campi di un modulo possono essere generati da ColdFusion. Ad esempio, non esiste in CFML una <textarea> o un tag <input type="file">. Là dove possiamo è bene usare il tag <cfinput> per un controllo sui dati obbligatori.
Poiché il form permette anche l'invio di un file, abbiamo dovuto mettere l'attributo enctype="multipart/form-data" nel tag <cfform>.
L'action del form punta allo stesso file che lo contiene, inserimento.cfm. All'interno del file inserimento.cfm aggiungeremo quindi il codice che permette l'inserimento del record: codice che dovrà essere eseguito solamente quando è stato inviato il form. Come abbiamo già visto, l'invio di un form restituisce una serie di variabili con scope "form" e nome quello dei campi del modulo. Se il modulo non è stato inviato, queste variabili non sono esistenti, non sono cioè "definite". In CFML si usa la funzione IsDefined() per controllare se una variabile è definita.
2. Inserisci all'inizio del file inserimento.cfm il controllo per verificare se è definita la variabile form.ALBUM_TITOLO. Quando si invia il modulo, insieme ai contenuti dei vari campi viene inviato un file: <input name="ALBUM_IMG" type="file" size="30">. I byte che compongono quest'immagine sono trasferiti dal client al server. Nel database, però, non dobbiamo inserire questa informazione, ma semplicemente il nome del file. Non solo, il file inviato dovrà essere scritto sul server per poter essere visualizzato nel sito, e più precisamente salvato nella cartella "album" dove risiedono le altre immagini; questo processo si chiama upload (caricamento).
Una volta eseguito l'upload, potremo inserire i vari dati dell'album nel database, compreso il nome dell'immagine appena caricata sul server.
3. Ovviamente, prima di fare l'upload del file dobbiamo assicurarci che il campo ALBUM_IMG non sia vuoto. Anche qui, è sufficiente inserire un <cfif>. Il tag adibito a lavorare con i file è <cffile>. Ad esso è sempre associato un attributo "action" che identifica l'azione che <cffile> deve eseguire: ad esempio, action="write" indicherà a <cffile> di scrivere un file; action="delete" di cancellare un file; action="rename" di rinominare, e così via. Per eseguire l'upload di un file sul server, si utilizza l'attributo action="upload".
E' obbligatorio specificare l'attributo "filefield", che identifica il nome del campo file del modulo; è obbligatorio l'attributo "destination", che indica il percorso assoluto sul server dove deve essere caricato il file. Utilizzando, inoltre, l'attributo nameconflict="makeunique", possiamo dire a ColdFusion di rinominare il file sul server se ne è già presente uno con lo stesso nome.
Molto più semplicemente, basterà scrivere questa riga:
<cffile action="upload" filefield="ALBUM_IMG". per eseguire l'upload di un file nella cartella C:CFusionMXwwwrootdiscotecaalbum.
4. Aggiungi quindi <cffile> in inserimento.cfm quando il file è stato trasferito sul server, possiamo conoscerne il nome utilizzando la variabile "cffile.ServerFile". Questo nome sarà inserito nel nuovo record.
5. Attribuiamo quindi alla variabile form.ALBUM_IMG, proveniente dal form, il valore di cffile.ServerFile.
6. Per inserire il nuovo record nel database, usiamo il tag <cfinsert>. Negli attributi dobbiamo specificare il data source name da utilizzare, la tabella da aggiornare e i campi del modulo da cui provengono le informazioni. Il tag <cfinsert> esegue un INSERT via SQL e riconosce i campi della tabella da aggiornare, in base al nome dei campi del modulo di inserimento: per questo motivo abbiamo dovuto creare il modulo utilizzando gli stessi nomi dei campi del database.
Naturalmente, anziché usare <cfinsert> avremmo potuto scrivere "a mano" la stringa di SQL, che avremmo passato al solito tag <cfquery>. Il <cfquery> corrispondente al <cfinsert> è in questo caso:
<cfquery name="insertrecord" datasource="discoteca">
INSERT INTO ALBUM (ALBUM_TITOLO,ALBUM_AUTORE,ALBUM_ETICH,ALBUM_DESCR, ALBUM_GENERE,ALBUM_IMG)
VALUES ('#form.ALBUM_TITOLO#', '#form.ALBUM_AUTORE#', '#form.ALBUM_ETICH#', '#form.ALBUM_DESCR#', '#form.ALBUM_GENERE#', '#form.ALBUM_IMG#')
</cfquery>.
7. Per concludere, dopo l'inserimento del record inseriamo un messaggio di conferma. Per visualizzarlo dopo l'intestazione del sito, dichiariamo una nuova variabile dopo <cfinsert>.
8. solo nel caso in cui questa variabile sia stata definita potremo mostrare il valore: dopo <cfinclude template="header.cfm"> inseriamo un <cfif> e un <cfoutput>
Grazie, spero di esservi stato utile, non l'ho fatta solo io ma mi so fatto aiutare da mio zio che però non è registrato a Sciax2 Forum.
Questo è tutto By Ispirazione (Ispi) xD