Cosa impareremo:
- Creare la pagina dei risultati
- Mostrare i risultati della ricerca con il behavior "Repeat region"
Come avete osservato, la pagina di ricerca non pone grosse difficoltà
a livello di programmazione. Basta semplicemente inserire il form con gli elementi
essenziali per questo tipo di procedura: la casella in cui digitare il testo
da cercare e il pulsante per inviare il modulo. La pagina che richiede più
lavoro è invece quella dei risultati. Il nome del file deve essere quello
che abbiamo inserito nel campo "Action" delle proprietà del
form: dunque creiamo una nuova pagina, nominiamola "risultato.asp"
e salviamola. È su di essa che ora lavoreremo.
Creare la pagina dei risultati
Per prima cosa dobbiamo creare una nuova connessione al database "covers.mdb".
Il metodo è quello già visto: dal menu Modify scegliamo
Connections, quindi New e infine "Custom connection string".
Assegniamo alla connessione il nome "conn_covers". Poiché
useremo ancora il metodo ServerMapPath, sceglieremo l'opzione "Using driver
on application server" e inseriremo la seguente stringa di connessione
(fig. 1):
"Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.Mappath("/tutorial/dati/covers.mdb")
Il passo successivo è la creazione di un nuovo recordset. Apriamo la
finestra Data Bindings (Ctrl + F10), click su "+" e selezioniamo "Recordset
(Query)". La configurazione del recordset è fondamentale per stabilire
i criteri di ricerca. Osserviamo la figura e commentiamo i vari parametri (fig.
2):
Name: è il nome del recordset, "rs_ricerca".
Connection: qui va scelta la connessione al database. Selezioniamo ovviamente
quella appena creata, "conn_covers".
table: il valore di questo campo va impostato in base alla tabella del
database all'interno della quale effettueremo la ricerca. Delle tre tabelle
del nostro database selezioniamo "Copertine".
Columns: si tratta qui di scegliere in quali campi dovrà avvenire
la ricerca. Selezionando "All", la ricerca avverrà in tutti
i campi.
Filter: a questo punto bisogna impostare la query SQL che filtrerà
i dati. Ultradev ci consente di farlo in modo intuitivo grazie ad una serie
di menu. Per chi vuole impostare la query manualmente basta cliccare sul pulsante
"Advanced" e scrivere il codice nello spazio apposito. Veniamo ai
parametri. La prima casella è settata su "Artista":
significa che i risultati verranno fltrati in base al nome dell'artista (pertanto,
è opportuno, nella pagina di ricerca, specificare che la ricerca è
per artista). Se avessimo voluto effettuare la ricerca in base al titolo
del cd, avremmo ovviamente scelto come valore "Titolo". Chiaro?
La seconda casella serve a impostare l'operatore della ricerca. Scegliamo "contains".
In tal modo, se nella casella di ricerca digitassimo "the", otterremmo
come risultato tutti i records dei nomi degli artisti in cui è contenuta
la stringa "the": quindi "The Police", "The
Cranberries", ma anche "mother" (se ci fosse). La scelta
dell'operatore dipende dalle proprie preferenze e Ultradev ci offre veramente
tutte le possibilità.
Ma da dove provengono i dati da ricercare? E che forma hanno? Sono parametri
essenziali e vanno impostati tramite la terza e la quarta casella. In quest'ultima
digitiamo il nome della casella di testo presente nella pagina di ricerca. Nella
terza selezioniamo "URL Parameter".
Sort: l'ultima sezione della finestra definisce i criteri di ordinamento
dei risultati.
Per finire, click su OK e il recordset è creato.
Mostrare i risultati della ricerca con il behavior "Repeat region"
A questo punto dobbiamo impostare la visualizzazione dei risultati. Per fare
ciò inseriamo innanzitutto una tabella. Dal menu Insert scegliamo
table oppure usiamo la combinazione di tasti "Ctrl + Alt + T".
Intendiamo visualizzare nei risultati solo il nome dell'artista e il titolo
del cd, perciò la tabella avrà due righe e due colonne (fig.
3).
Useremo la prima riga per l'intestazione, la seconda per visualizzare i dati.
Sarebbe opportuno impostare due diversi colori di background per le due righe.
La tabella va ora "riempita" con i dati. Nella finestra Data Bindings
(Ctrl + F10) espandiamo il recordset cliccando sul segno "+". trasciniamo
con il mouse il campo "Artista" nella prima colonna della seconda
riga (fig. 4).
Facciamo lo stesso con il campo "Titolo" nella seconda colonna.
Se lasciassimo tutto così la pagina dei risultati visualizzerebbe solo
un record. Per mostrare tutti i record ottenuti dobbiamo ricorrere al behavior
"Repeat region". Visto che i risultati sono posti nella seconda
riga della tabella selezioniamo solo quest'ultima (badate a non applicare
il behavior all'intera tabella!). Apriamo la finestra Server Behaviors (Ctrl
+ F9), click su "+" e selezioniamo "Repeat region". Ecco
la semplice finestra di configurazione (fig. 5):
In "Recordset" impostiamo il nome "rs_ricerca" e stabiliamo
di mostrare 5 records alla volta. Clicchiamo su OK.
Per testare il tutto accedete al sito con i soliti dati (charlie, password),
immettete un valore nella casella di ricerca (provate con "police")
e inviate i dati.
Nelle prossime lezioni completeremo la procedura di ricerca con tre importanti
aggiunte: visualizzare un messaggio quando la ricerca non restituisce risultati,
costruire la ricerca per lettera, navigare tra i risultati.