Editor  »  Guide  »  Guida Coldfusion Mx 

La Pagina di dettaglio



Volendo mostrare anche gli altri dati contenuti nella tabella ALBUM, come la descrizione o un'immagine, possiamo creare una nuova pagina chiamata "di dettaglio". Prima di tutto, occorre notare che la colonna ID_ALBUM è di tipo "contatore", cioè un identificativo univoco che rappresenta nel database uno e un solo record della tabella ALBUM. Si utilizza solitamente questo tipo di valore per "filtrare" il record che si deve visualizzare in una pagina di dettaglio.

1. Aggiungi il campo ID_ALBUM nel SELECT del file index.cfm:

......
<!--- Esegue una query al datasource "discoteca" chiamata "getAlbum" --->.

<cfquery datasource="discoteca" name="getAlbum">
     SELECT ID_ALBUM, ALBUM_TITOLO, ALBUM_AUTORE, ALBUM_GENERE
     FROM ALBUM
</cfquery>
......

2. Aggiungi un link al titolo dell'album. Ipotizzando che la pagina di dettaglio si chiamerà "dettaglio.cfm", ad essa dovremo passare il valore di ID_ALBUM da usare come filtro. Nel link facciamo quindi seguire, al nome del file dettaglio.cfm, un punto di domanda ("?"), un nome di variabile di nostra scelta e il valore univoco:

......
<cfoutput query="getAlbum">
<!--- Una riga della tabella per ogni record della query GetAlbum --->.
     <tr>
          <td><p>#ALBUM_GENERE#</p></td>
          <td><p><a href="dettaglio.cfm?id=#ID_ALBUM#">#ALBUM_TITOLO#</a></p></td>
          <td><p>#ALBUM_AUTORE#</p></td>
     </tr>
</cfoutput>
......

3. Salva ora un nuovo file dettaglio.cfm nella cartella del sito contenente una query e i due soliti <cfinclude>:

<!--- Esegue una query al datasource "discoteca" chiamata "getdettaglio" --->.
<cfquery datasource="discoteca" name="getdettaglio">
     SELECT *
     FROM ALBUM
     WHERE ID_ALBUM = #URL.id#
</cfquery>

<!--- Include l'intestazione del sito --->.
<cfinclude template="header.cfm">

<!--- Include il piede delle pagine --->.
<cfinclude template="footer.cfm">

La query "getdettaglio" esegue un SELECT nella tabella ALBUM, filtrando i dati in base ad un ID_ALBUM contenuto in una variabile CFML chiamata "URL.id". Lo scope URL indica una variabile proveniente dall'URL della pagina (esattamente come lo scope "form" indicava la provenienza da un form): in questo caso, è l'URL creato dinamicamente dalla riga <a href="dettaglio.cfm?id=#ID_ALBUM#">#ALBUM_TITOLO#</a> nella pagina index.cfm.

4. Aggiungi il codice per visualizzare il contenuto della query "Getdettaglio". Analogamente a prima, utilizziamo i nomi dei campi del database per estrarre i singoli valori all'interno di un tag <cfoutput> con l'attributo "query".

<!--- Esegue una query al datasource "discoteca" chiamata "getdettaglio" --->.
<cfquery datasource="discoteca" name="getdettaglio">
     SELECT *
     FROM ALBUM
     WHERE ID_ALBUM = #URL.id#
</cfquery>

<!--- Include l'intestazione del sito --->.
<cfinclude template="header.cfm">

<cfoutput query="getdettaglio">
<p>
     <b>Titolo: </b> #ALBUM_TITOLO#<br>
     <b>Autore: </b> #ALBUM_AUTORE#<br>
     <b>Etichetta: </b> #ALBUM_ETICH#<br>
     <b>Descrizione: </b> #ALBUM_DESCR#<br>
     <b>Genere: </b> #ALBUM_GENERE#<br>
     <b>Immagine: </b> #ALBUM_IMG#
</p>
</cfoutput>

<!--- Include il piede delle pagine --->.
<cfinclude template="footer.cfm">

Naviga da "http://localhost:8500/discoteca/index.cfm" all'interno dei link creati sui titoli dei CD. Nota come, nell'URL, cambia la variabile "id" - che proviene dal campo ID_ALBUM.

Alcuni record possiedono nel campo ALBUM_IMG il nome del file che contiene la copertina dell'album. Le immagini che ho utilizzato le puoi scaricare da qui: estrai i file nella cartella "discoteca", le immagini devono stare nella sottocartella "album".

5. Inserisci quindi nel file dettaglio.cfm il codice HTML per mostrare l'immagine, il cui nome proviene dal database:

......
<cfoutput query="getdettaglio">
<p>
     <b>Titolo: </b> #ALBUM_TITOLO#<br>
     <b>Autore: </b> #ALBUM_AUTORE#<br>
     <b>Etichetta: </b> #ALBUM_ETICH#<br>
     <b>Descrizione: </b> #ALBUM_DESCR#<br>
     <b>Genere: </b> #ALBUM_GENERE#<br>
     <b>Immagine: </b> <img src="album/#ALBUM_IMG#">
</p>
</cfoutput>
......

6. Poiché non tutti i record possiedono un'immagine, inserisci un <cfif> che controlli che il campo non sia vuoto:

......
<cfoutput query="getdettaglio">
<p>
     <b>Titolo: </b> #ALBUM_TITOLO#<br>
     <b>Autore: </b> #ALBUM_AUTORE#<br>
     <b>Etichetta: </b> #ALBUM_ETICH#<br>
     <b>Descrizione: </b> #ALBUM_DESCR#<br>
     <b>Genere: </b> #ALBUM_GENERE#<br>

     <!--- Mostra l'immagine solo se il campo ALBUM_IMG non è vuoto --->.
     <cfif ALBUM_IMG NEQ "">     
          <b>Immagine: </b> <img src="album/#ALBUM_IMG#">
     </cfif>

</p>
</cfoutput>
......

Non ci rimane altro da fare che personalizzare la pagina usando un po' di HTML, ad esempio in questo modo:

<!--- dettaglio.cfm: mostra il dettaglio dell'album --->.

<!--- Esegue una query al datasource "discoteca" chiamata "getdettaglio" --->.
<cfquery datasource="discoteca" name="getdettaglio">
     SELECT *
     FROM ALBUM
     WHERE ID_ALBUM = #URL.id#
</cfquery>

<!--- Include l'intestazione del sito --->.
<cfinclude template="header.cfm">

<p><a href="index.cfm">Torna all'elenco</a></p>

<cfoutput query="getdettaglio">

<p class="titolo">#ALBUM_AUTORE# ~ #ALBUM_TITOLO#</p>

<p>
     <table width="500">
          <tr>
               <td valign="top">
                    <cfif ALBUM_IMG NEQ "">
                         <img src="album/#ALBUM_IMG#" border="1">
                    </cfif>
               </td>
               <td valign="top">
               <p>
               <b>Etichetta: </b> #ALBUM_ETICH#<br>
               <b>Descrizione: </b> #ALBUM_DESCR#<br><br>
               <b>Genere: </b> #ALBUM_GENERE#
               </p>
          </tr>
     </table>
</p>

</cfoutput>

<!--- Include il piede delle pagine --->.
<cfinclude template="footer.cfm">

e la nostra pagina di dettaglio assume un aspetto assai più presentabile.

I file del sito aggiornati fino a questo capitolo li puoi scaricare da qui.

Ultimi articoli Editor

Adobe Edge, la prima animazione HTML5

Come creare una animazione HTML5 con Adobe Edge, esempio completo

Adobe Edge, l'interfaccia

Esaminiamo pannelli e menu del tool gratuito di Adobe per la...

Trasformazioni XSLT in Dreamweaver 8

Primo sguardo agli strumenti XML: trasformare un feed RSS

Layout senza tabelle con Dreamweaver 8

Esaminiamo gli strumenti CSS avanzati del software di Adobe/Macromedia

Il nuovo Dreamweaver 8

Panoramica delle principali novità dell'ultima release del popolare...

Altri articoli

Guide Editor

Guida WebMatrix

Entrare nel mondo dello sviluppo di applicazioni Web con Webmatrix,...

Guida Notepad++

Un editor testuale che funziona perfettamente anche come editor HTML...

Guida Aptana

Creare siti Web o applicazioni con Aptana, l'editor open source,...

Altre guide

Newsletter @Daily HTML.it

Ogni mattina, dal lunedì al venerdì, le novità pubblicate su tutti i siti tecnici del network HTML.it: articoli, guide, notizie dal Web, blog e molto altro.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Webmaster base

18 Giugno 2012 a Milano
Disponibilità: 6 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti

Corso Webmaster base

11 Giugno 2012 a Roma
Disponibilità: 7 Posti