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")
![Figura](https://static.html.it/app/uploads/documenti/guide/img/ultradev/30_fig001.gif)
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):
![Figura 2](https://static.html.it/app/uploads/documenti/guide/img/ultradev/30_fig002.gif)
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).
![Figura 3](https://static.html.it/app/uploads/documenti/guide/img/ultradev/30_fig003.gif)
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).
![Figura 4](https://static.html.it/app/uploads/documenti/guide/img/ultradev/30_fig004.gif)
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):
![figura](https://static.html.it/app/uploads/documenti/guide/img/ultradev/30_fig005.gif)
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.