Newsgroup: it.comp.www.asp
Titolo: Recupero dati da "casella a discesa"

Ho scritto il codice di seguito per recuperare da un database i dati da
inserire in una casella a discesa dove l'utente possa selezionare il comune
in cui risiede.
La parte che non riesco a fare è la seguente:
una volta che l'utente ha selezionato una delle opzioni della casella a
discesa dovrei recuperare un'altro campo contenuto nello stesso record del
database "comuni.mdb".
Come posso fare? Potete darmi una dritta con due righe di codice?
Ciao.
Enzo
 <%
'Codice per dichiarare tutte le variabili locali
Dim conn
Dim rs
Dim strconn
Dim DBQValue
' Connessione Automatica
' Questo valore è generato al volo
Session("DataConn_ConnectionString") = _
"DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("comuni.mdb")
' Fine della connessione automatica
strconn = Session("DataConn_ConnectionString")
set conn = server.createobject("adodb.connection")
set rs = server.createobject("adodb.recordset")
set rs2 = server.createobject("adodb.recordset")
conn.open strconn
strsql = "SELECT * FROM comuni"
rs.open strsql, conn, 2, 2
rs2.open strsql, conn
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<title>Dove Siamo?</title>
</head>
<body>
<p><font face="Verdana" size="2">Inserire il comune dove ti trovi</font>
<font face="Verdana" size="2"><select name="paese" size="1">
<% Do While Not rs.EOF %>  <option value="<% = rs("nome") %>"><% =
rs("nome") %></option>
<% rs.movenext %><% loop %></select><br>
</p>
</body>
<%
'Chiude tutti gli oggetti aperti e resetta
'Aiuta a pulire e liberare la memeoria del server
rs.close
rs2.close
conn.close
set rs = nothing
set rs2 = nothing
set conn = nothing
%>
</html>

 Come posso fare? Potete darmi una dritta con due righe di codice?
Problema classico!
In tecnologia Server side pura non hai grandi scelte da poter fare: devi
rielaboare un'altra pagina asp (o la stessa passandole pero' il valore della
prima combo che hai ormai scelto).
Devi ricorrere a soluzioni miste. Fino a qualche tempo fa si tendeva a fare
come nel codice che ti posto (ma se i record sono tanti la cosa e'
impensabile) oggi qualcuno ti potrebbe suggerire del remote scripting, ma io
non sono adatto ad darti indicazioni piu' precise al rigurado, non ne ho
ancora sondato bene le possibilita'.
Ciao, Fabio Zed Zamparelli
P.S. occhio a come il mio Outlook tratta le doppie slash: le sostituisce con
file duepunti doppia slash.
<HTML>
<HEAD><TITLE>Dynamic Select Lists</Title></Head>
<BODY OnLoad="BuildContacts(0);">
<FORM Name="myForm">
Salesperson:
<SELECT Name="SalesNames" OnChange="BuildContacts(this.selectedIndex);">
      <OPTION Value="Jeff">Jeff
      <OPTION Value="Charles">Charles
      <OPTION Value="Rick">Rick
      <OPTION Value="Kevin">Kevin
</Select>
<BR><BR>
Contacts:
<!-- We want to define at least one option so that the select tag is created
       with the correct dimensions-->
<SELECT Name="SalesContacts">
      <OPTION Value="">--------
</Select>
</Form>
</Body>
</Html>
<SCRIPT Language="JavaScript"><!--
file://Build arrays for each person's contacts
Contacts=new Array(4);
Contacts[0]=new Array(3);
Contacts[1]=new Array(2);
Contacts[2]=new Array(5);
Contacts[3]=new Array(4);
file://Charles
Contacts[0][0]="Bill";
Contacts[0][1]="Bob";
Contacts[0][2]="Chuck";
file://Jeff
Contacts[1][0]="Vern";
Contacts[1][1]="Matt";
file://Rick
Contacts[2][0]="Diana";
Contacts[2][1]="Dave";
Contacts[2][2]="Todd";
Contacts[2][3]="Sherry";
Contacts[2][4]="Sharon";
file://Kevin
Contacts[3][0]="Brian";
Contacts[3][1]="Trisha";
Contacts[3][2]="Greg";
Contacts[3][3]="Troy";
file://Call this to build the Contact list for the specified Salesperson
function BuildContacts(num)
{
      file://Select the first Contact
      document.myForm.SalesContacts.selectedIndex=0;
      file://For every contact in the array for this person, add a new
option
      for(ctr=0;ctr<Contacts[num].length;ctr++)
      {
       document.myForm.SalesContacts.options[ctr]=new
Option(Contacts[num][ctr],Contacts[num][ctr]);
      }
      file://Set the length of the select list
      document.myForm.SalesContacts.length=Contacts[num].length;
}
file://--></Script>