Popolare una select da Database con Dreamweaver
I passaggi sono molto molto semplici. Quello che vedremo in questo tutorial è l'inserimento, in un campo di testo, di un nome e contemporaneamente questo apparirà nella select. Andiamo con ordine. Quello che ci serve è:
- una pagina .asp
- una Connessione al database
- un database (Access in questo caso va più che bene) con una sola tabella e 2 campi
Per quanto riguarda la Connessione al DataBase ce ne siamo occupati in un altro tutorial; essa non cambia assolutamente. Se si vogliono seguire gli stessi passaggi che ho effettuato anche io, la stringa di connessione personalizzata è:
"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/nomeCartella/NomeDataBase.mdb") Ovviamente, per motivi di spazio, il codice è andato a capo.
Adesso creiamo la tabella del DataBase. Di seguito riporto l'immagine così come l'ho realizzata per l'esempio in questione.

Per questo tipo di esempio, avrei anche potuto non inserire il campo id in quanto della tabella ci interessa solo il campo "genere". Fatto questo, nominiamo la tabella categorie, come raffigurato nell'immagine. Possiamo salvare e chiudere Access.
Preparare la pagina .asp
Il nome da dare alla pagina è a vostra scelta. I comportamenti che dobbiamo inserire sono:
- Inserimento record
- recordSet
Tali comportamenti sono stati affrontati in qualche tutorial precedente; si tratta, adesso, di farli coesistere nella stessa pagina. Va detto che, per un sito di cui solo l'amministratore se ne dovrebbe occupare, non è necessario che l'inserimento nel DataBase deve essere a vista. Questo potrebbe trovarsi in un'area privata del sito. Per l'occassione li ho messi nella stessa pagina.
Creare un form in cui inserire un campo di testo che nomineremo genere (come il campo del DataBase) ed un pulsante (button) di inserimento. A tale pulsante si deve associare il comportamento server "inserisci Record. Quando tale operazione è andata a buon fine, si possono inserire dei nomi, titoli, professioini ecc... Per questo esempio ho inserito alcuni generi di libri. Usando un pò di fantasia... popoliamo il DataBase.
Siccome vogliamo che il genere dei libri non sia solo il record statico nella tabella di Access, dobbiamo fare in modo di "estrarre" dal DataBase, attraverso una query, quello che abbiamo inserito. Lo faremo attraverso un RecordSet. Anche di questo comportamento ho scritto un tutorial.
Il RecordSet l'ho chiamato: rsCat. Selezionare il nome della connessione, il nome della tabella dalla quale saranno estratti i dati, lasciare il checkbox su tutto (estraiamo i 2 dati della tabella) e premere il pulsante OK. Dovreste vedere, per la query appena fatta, quello che avete inserito nel campo "genere".
Inserire la select nella pagina
Dopo aver fatto il passaggio descritto nel precedente paragrafo, apriamo il tab Moduli di Dreamweaver ed inseriamo una select che nel programma prende il nome di Elenco/menu.
Il codice della nostra select sarà:
<select name="categorie" id="categorie">
<option value="<%=(rsCat.Fields.Item("genere").Value)%>">
<%=(rsCat.Fields.Item("genere").Value)%></option>
Cosa abbiamo fatto in questo passaggio: dopo aver realizzato il RecordSet, al tag <option> abbiamo asssociato il valore del campo "genere" (ricordo che lo possiamo anche trascinare dal pannello dei comportamenti, nel punto in cui ci serve, della pagina. Il risultato è il codice scritto più su.
Siccome non possiamo sapere quanti campi saranno presenti nel DataBase, per visualizzarli tutti nella select, dovremmo fare un'area ripetuta dei tag <option>. In vista codice di Dreamweaver selezionare il rigo che ho riportato più su:
<option value="...">....</option> e scegliere, sempre dal pannello comportamenti Area Ripetuta. Selezionare il nome del Recordset (saCat), mettere la spunta su tutti e premere OK. Il nostro Elenco / menu avrà un codice simile al seguente:
<select name="categorie" id="categorie">
<%
While ((Repeat1__numRows <> 0) AND (NOT rsCat.EOF))
%>
<option value="..."><%=(rsCat.Fields.Item("genere").Value)%></option>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
rsCat.MoveNext()
Wend
%>
A questo punto abbiamo terminato anche questo tutorial. Siamo in grado, adesso, di inserire nel database, e quindi nella select, una categoria e vederla immediatamente stampata a video.
Buon lavoro.
| < Prec. | Succ. > |
|---|

