Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Select Dinamiche - Problema Defaulttext ??

    Buongiorno...

    Ho questo problema a cui non riesco a porre rimedio:

    Ho modificato a mio piacere un esempio di SELECT DINAMICA trovata in rete, e tutto funziona secondo i miei piani... ed anche molto bene

    Il problema però è che mi piacerebbe anche modificare la DEFAULTTEXT delle varie SELECT che in questo momento sono come nel listato che segue, facendo in modo che il DEFAULTTEXT sia il primo DATO reperito dalla select dal DATABASE..



    Es.: Ora la prima defaulttext è: SELEZIONA UBICAZIONE

    A me piacerebbe che fosse: TORINO (che è la prima ubicazione presa dal database)

    Spero di essermi spiegato :S


    <%
    value = replace(request("value")&"", "'", "&#39")
    fieldtype = request("type")
    set ds = new DinamicSelect
    ds.DataBase = "/mdb-database/prova.mdb"
    if fieldtype = "Ubicazione" then
    ' UBICAZIONE

    ds.sql = "select distinct Us_Ubicazione from Tab_Users"
    ds.DefaultText = "Seleziona Ubicazione"
    ds.SelectValue = "Us_Ubicazione"
    ds.SelectText = "Us_Ubicazione"
    ds.evento = " onchange=""caricaPagina('dbprova.asp?type=Utente&a mp;value=' " & "+ this.options[this.options.selectedIndex].value,'PROVA_Utente');"""
    ds.NomeCampo = "Ubicazione"
    end if
    ' NOME E COGNOME UTENTE
    if fieldtype = "Utente" then

    ds.sql = "select * from Tab_Users where Us_Ubicazione ='"& value&"'"
    ds.DefaultText = "Seleziona il tuo Nome e Cognome"
    ds.selected = Value
    ds.SelectValue = "Us_Nome_e_Cognome"
    ds.SelectText = "Us_Nome_e_Cognome"
    ds.evento = " onchange=""caricaPagina('dbprova.asp?type=Ufficio& amp;value='+ " & "this.options[this.options.selectedIndex].value,'PROVA_Ufficio');"""
    ds.NomeCampo = "Nome e Cognome utente"

    end if
    'UFFICIO
    if fieldtype = "Ufficio" then

    ds.sql = "select Det_Ufficio, Det_Nomeutente from Tab_Dettagli where Det_Nome_e_Cognome = '"&value&"'"
    ds.DefaultText = "Seleziona Ufficio"
    ds.selected = value
    ds.SelectValue = "Det_Ufficio"
    ds.SelectText = "Det_Ufficio"
    ds.evento = ""
    ds.NomeCampo = "Ufficio"
    end if
    Response.Write (ds.CreaDinamicSelect())
    set ds = nothing
    %>

    Ciao e grazie mille per eventuali risposte!!

  2. #2
    Te vuoi che se dalla prima combo seleziono Pippo, ricaricata la pagina, la prima combo mostri Pippo come valore selezionato (oltre alla visualizzazione della seconda combo con i dati coerenti la scelta fatta nella prima)?

  3. #3
    Si esatto... se io nella prima seleziono ad esempio:

    ABRUZZO

    vorrei che nella combo successiva, non ci sia come defaulttext "SELEZIONA PROVINCIA" ma che diventi automaticamente AQUILA che è la prima voce del database che ha popolato la combo.

    Spero di essermi spiegato

  4. #4
    Vediamo sto codice (completo) della pagina con le due combo?

  5. #5
    Dunque:

    (INDEX.ASP)


    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <html>
    <head>
    <LINK href="/utilities_marco/verdana.css" type="text/css" rel="stylesheet">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Select dinamiche</title>
    <style type="text/css">
    <!--
    TABLE,LEGEND,INPUT
    {
    font-family:"Trebuchet MS", Verdana, sans-serif; font-size:12px;
    }
    select {font-family:Verdana, Arial, sans-serif; font-size:10px;}
    #ErrorRegioni, #ErrorProvincie, #ErrorComuni {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;font-weight:bold;
    color:red; display:none;}
    -->
    </style>
    <script type="text/javascript" language="javascript">
    //<![CDATA[
    url = "http://www.pc-network.it/";
    d = document;
    preloadText = "Generazione lista...";
    function caricaPagina(pagina,idLayer)
    {
    if (d.getElementById) {var x=(window.ActiveXObject)?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();}
    if (x)
    {
    d.getElementById(idLayer).innerHTML = preloadText;
    x.onreadystatechange = function()
    {
    if (x.readyState == 4 && x.status == 200)
    {
    el=d.getElementById(idLayer);el.innerHTML = x.responseText;
    }
    }
    x.open("GET", url + pagina, true);
    x.send(null);
    }
    }
    function checkForm()
    {
    var ilForm = d.forms[0];
    var err = true;
    var lReg = document.getElementById("ErrorRegioni");
    var lProv = document.getElementById("ErrorProvincie");
    var lCom = document.getElementById("ErrorComuni");
    lReg.style.display = "none";lProv.style.display= "none";lCom.style.display="none";
    if (ilForm.regioni.value == "")
    {
    lReg.style.display = "block";lReg.innerHTML = "E' necessario selezionare una regione";
    err = false;
    }
    if (ilForm.provincie.value == "")
    {
    lProv.style.display = "block";lProv.innerHTML= "E' necessario selezionare una provincia.";
    err = false;
    }
    if (ilForm.comuni.value == "")
    {
    lCom.style.display = "block";lCom.innerHTML= "E' necessario selezionare un comune.";
    err = false;
    }
    return err;
    }
    //]]>
    </script>
    </head>
    <body onload="caricaPagina('dbprova.asp?type=Ubicazione' ,'PROVA_Ubicazione');">
    <form name="secondaprova" method="post" action="risultato.asp" onsubmit="return checkForm()">
    <div align="center">
    <fieldset style="text-align:center;width:500px">
    <legend>Esempio select dinamica</legend>
    <div id="FormError"> </div>
    <table border="0" cellpadding="0" cellspacing="0" style="width:100%;">
    <tr><td colspan="2" style="text-align:center"><div id="ErrorRegioni"> </div></td></tr>
    <tr>
    <td style="text-align:right;width:20%;font-weight:bold;">Ubicazione</td>
    <td style="text-align:left;width:80%"><div id="PROVA_Ubicazione"><select name="Ubicazione" style="width:100%"><option value="">Seleziona Ubicazione</option></select></div></td>
    </tr>
    <tr><td colspan="2" style="text-align:center"><div id="ErrorProvincie"> </div></td></tr>
    <tr>
    <td style="text-align:right;width:20%;font-weight:bold;">Nome Utente</td>
    <td style="text-align:left;width:80%"><div id="PROVA_Utente"><select name="Utente" style="width:100%"><option value="">Seleziona Utente</option></select></div></td>
    </tr>
    <tr><td colspan="2" style="text-align:center"><div id="ErrorComuni"> </div></td></tr>
    <tr>
    <td style="text-align:right;width:20%;font-weight:bold;">Ufficio&nbsp</td>
    <td style="text-align:left;width:80%"><div id="PROVA_Ufficio"><select name="Ufficio" style="width:100%"><option value="">seleziona Ufficio</option></select></div></td>
    </tr>
    <tr>
    <td colspan="2" style="text-align:center;"><input type="submit" value="Conferma" /></td>
    </tr>
    </table>



    </fieldset>
    </div>
    </form>
    </body>
    </html>


    (CLASS_DINAMIC_SELECT.ASP)


    <%

    Class DinamicSelect
    Public SelectText 'impostare il nome del campo del database che verrà visualizzato nella lista
    Public SelectValue 'impostare il nome del campo del database che verrà passato come valore della lista
    Public Selected 'impostare la voce che verrà visualizzata nella lista al caricamento di pagina
    Public DataBase 'impostare l'url del database
    Public sql 'impostare la query per estrarre i dati
    Public Evento 'impostare l'evento che provvederà al submit "parziale" del form
    Public NomeCampo 'impostare il nome del campo (nell'ambito del form)
    Public DefaultText





    Public Function CreaDinamicSelect()
    'creazione e apertura della connessione
    tmpString = ""
    Set conn = Server.createobject("adodb.connection")
    connstr = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/mdb-database/prova.mdb")
    conn.open connstr
    tmpString = tmpString & "<select style=""width:100%"" name=""" & me.NomeCampo & """" & me.Evento & """>" & vbcrlf
    tmpString = tmpString & "<option value="""">" & Me.DefaultText & "</option>" & vbcrlf
    'creazione del recordset
    set rs = Server.Createobject("adodb.recordset")
    'apertura del recordset
    rs.open me.sql,conn,3,3
    do until rs.eof
    tmpString = tmpString & "<option value=""" & Trim(rs(me.SelectValue)) & """"
    if rs(me.SelectValue) = me.selected then
    tmpString = tmpString & "selected = ""selected"""
    end if
    tmpString = tmpString & ">" & Trim(UCase(rs(me.SelectText))) & "</option>" & vbcrlf
    rs.movenext
    loop
    tmpString = tmpString &"</select>"& vbcrlf
    'chiusura e distruzione del recordset
    rs.close
    set rs = nothing
    'chiusura e distruzione della connessione
    conn.close
    set conn = nothing
    CreaDinamicSelect = tmpString
    End function
    End Class
    %>


    Penso sia questo quello che volevi!! Ciaoo

  6. #6
    Ho risolto in un'altro modo Grazie comunque

  7. #7
    Utente di HTML.it L'avatar di Lino80
    Registrato dal
    Oct 2005
    Messaggi
    1,560
    salve, io non ho risolto

    non capisco cosa devo modificare nel codice..

    sono 2 giorni che provo

    http://www.sitowebflash.com/prova_select_dinamiche.asp

    codice:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    
    <%
    reg = request("regioni")
    prov = request("provincie")
    com = replace(request("comuni"), "'", "&#39")
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <LINK href="/utilities_marco/verdana.css" type="text/css" rel="stylesheet">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Select dinamiche</title>
    <script language="JavaScript">
    <!--
    function aggiorna_regione(){
    	
    	document.secondaprova.provincie.value = "";
    	document.secondaprova.comuni.value = "";
    	document.secondaprova.submit();
    	}
    	
    function aggiorna_provincia(){
    	
    	document.secondaprova.comuni.value = "";
    	document.secondaprova.submit();
    	}
    	
    function aggiorna_comune(){
    
    	document.secondaprova.provincie.value = "";
    	document.secondaprova.submit();
    	}
    	
    function submit_finale(){
    	var check;
    	check="true";
    	if (check=="true") {
    	if ((document.secondaprova.regioni.value=="Scegli una regione")||(document.secondaprova.provincie.value=="--")||(document.secondaprova.comuni.value=="Scegli prima una provincia o una regione")) {
    				alert("Tutti i campi devono essere selezionati!");
    				check="false";				
    			}			
    	}
    	
    	if (check=="true") {	
    
    				document.secondaprova.action="risultato.asp";
    				document.secondaprova.submit();				
    	}
    }
    //-->
    </script>
    </head>
    
    <body>
    
    
    
    
    
    
    
    
    <center>
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
    
    <form name="secondaprova" method="post">
    
    	<tr>
    		<td align="right">
    		Lista dinamica regioni
    		</td>
    		<td align="left">
    			
    				<%
    				set dinselectregioni = new DinamicSelect
    				dinselectregioni.DataBase = "/mdb-database/database.mdb"
    				
    				if len(reg) > 0 then
    					dinselectregioni.selected = reg
    				else
    					dinselectregioni.selected = "Scegli una regione"
    				end if
    				
    				dinselectregioni.sql = "select distinct pr_regione from provincie"
    				dinselectregioni.SelectValue = "pr_regione"
    				dinselectregioni.SelectText = "pr_regione"
    				dinselectregioni.evento = "onChange='aggiorna_regione();'"
    				dinselectregioni.NomeCampo = "regioni"
    				dinselectregioni.CreaDinamicSelect()
    				%>
    		</td>
    	</tr>
    	<tr><td colspan="2">
    
    </td></tr>	
    	<tr>
    		<td align="right">
    		Lista dinamica provincie
    		</td>
    		<td align="left">
    			<%
    				set dinselectprovincie = new DinamicSelect
    				dinselectprovincie.DataBase = "/mdb-database/database.mdb"
    				
    				if len(reg) > 0 then
    					if len(com) > 0 then 'per aggiornare la provincia al comune eventualmente scelto direttamente tra quelli della regione corrente
    					dinselectprovincie.sql = "select pr_sigla, pr_desc from provincie inner join comuni on provincie.pr_sigla=comuni.loc_prov where loc_desc='"&com&"' and pr_regione = '"&reg&"'" 
    					'NB: con questa query viene estratta la provincia (o le provincie) della regione corrente contenenti il comune selezionato
    					'(senza la clausola "and pr_regione = '"&reg&"'" la ricerca avviene su tutta Italia) 
    
    					else
    					dinselectprovincie.sql = "select * from provincie where pr_regione='"&reg&"'"
    					end if
    				else
    					dinselectprovincie.sql = "select * from provincie where pr_sigla='--'"
    				end if
    				
    				dinselectprovincie.selected = prov
    				
    				dinselectprovincie.SelectValue = "pr_sigla"
    				dinselectprovincie.SelectText = "pr_desc"
    				dinselectprovincie.evento = "onChange='aggiorna_provincia();'"
    				dinselectprovincie.NomeCampo = "provincie"
    				dinselectprovincie.CreaDinamicSelect()
    				%>
    		</td>
    	</tr>
    	<tr><td colspan="2">
    
    </td></tr>
    	<tr>
    		<td align="right">
    		Lista dinamica comuni
    		</td>
    		<td align="left">
    			
    				<%
    				set dinselectcomuni = new DinamicSelect
    				dinselectcomuni.DataBase = "/mdb-database/database.mdb"
    				
    				if len(reg) > 0 then
    					if reg = "Scegli una regione" then 'se viene scelta la voce "Scegli una regione" a pagina già caricata
    						dinselectcomuni.sql = "select loc_desc, loc_prov from comuni where loc_prov = '--'"
    					else if not (prov = "--" or prov = "") then 'se è stata selezionata una provincia estrae i comuni di quella provincia
    						dinselectcomuni.sql = "select loc_desc, loc_prov from comuni where loc_prov = '"&prov&"'"
    					else 'estrae tutti i comuni della regione
    						dinselectcomuni.sql = "select loc_desc, loc_prov from comuni where loc_prov in (select pr_sigla from provincie where pr_regione='"&reg&"')"
    					end if
    					end if
    				else 'al primo caricamento di pagina
    					dinselectcomuni.sql = "select loc_desc, loc_prov from comuni where loc_prov = '--'" 
    				end if
    				
    				dinselectcomuni.selected = com
    				dinselectcomuni.SelectValue = "loc_desc"
    				dinselectcomuni.SelectText = "loc_desc"
    				dinselectcomuni.evento = "onChange='aggiorna_comune();'"
    				dinselectcomuni.NomeCampo = "comuni"
    				dinselectcomuni.CreaDinamicSelect()
    				%>
    				
    					
    		</td>
    		
    	</tr>
    	<tr><td colspan="2">
    
    </td></tr>
    	<tr><td colspan="2">
    
    </td></tr>
    	<tr>
    		<td colspan="2" align="center">		
    				<input type="button" value="Conferma" onClick="javascript: submit_finale();"/> 
    				
    		</td>
    	</tr>
    </form>
    dinselclass.asp:

    codice:
    <%
    
    class DinamicSelect
    
    public SelectText		'impostare il nome del campo del database che verrà visualizzato nella lista 
    public SelectValue		'impostare il nome del campo del database che verrà passato come valore della lista
    public Selected			'impostare la voce che verrà visualizzata nella lista al caricamento di pagina
    public DataBase			'impostare l'url del database 
    public sql				'impostare la query per estrarre i dati
    public Evento			'impostare l'evento che provvederà al submit "parziale" del form
    public NomeCampo  		'impostare il nome del campo (nell'ambito del form) 
    
    
    
    
    function CreaDinamicSelect()
    
    'creazione e apertura della connessione
    set conn=server.createobject("adodb.connection")
    conn.open = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath(me.DataBase)
    
    
    %> 
    <select name='<%=me.NomeCampo%>' <%=me.Evento%>> 
    <%
    'creazione del recordset
    set rs=server.createobject("adodb.recordset") 
    
    'apertura del recordset
    rs.open me.sql,conn,3,3
    
    do until rs.eof
    
    %>
    <option value='<%=rs(me.SelectValue)%>' <%if rs(me.SelectValue) = me.selected then 
    												response.write("selected") 
    											end if
    										%>><%=rs(me.SelectText)%></option>
    										
    <%
    rs.movenext
    loop
    %>
    </select>
    <%
    'chiusura e distruzione del recordset
    rs.close
    set rs = nothing
    
    'chiusura e distruzione della connessione
    conn.close
    set conn = nothing
    
    'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    end function
    
    
    'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    end class
    %>
    qualche anima gentile mi darebbe una mano?

  8. #8
    Utente di HTML.it L'avatar di Lino80
    Registrato dal
    Oct 2005
    Messaggi
    1,560
    ho risolto grazie lostesso

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.