Select concatenate impostare di default dato memorizzato

djjunior

Utente Attivo
24 Lug 2004
99
1
8
Carissimi,
ho trovato uno script in javascript che gestisce in select concatenate: regioni, comuni, prov e cap.
Ora, l'ho inserito in uno form che li memorizza nel db access. Nella pagina successiva, alla visualizzazione / modifica dei dati vorrei che le select di default mi impostino i dati precedentemente inseriti per poi eventualmente modificarli.
Ecco lo script
Codice:
function carica_regioni() {
    var a = document.getElementById('regione');
    var b = return_regioni();
    b = b.sort();
    document.getElementById('provincia').options.length = 0;
    document.getElementById('città').options.length = 0;
    document.getElementById('cap').options.length = 0;
    a.options[0] = new Option("Scegli Regione", "NULL");
    for (i = 0; i < b.length; i++) {
        var c = b[i].split(';');
        a.options[i + 1] = new Option(c[0], c[0])
    }
}
function carica_province() {
    var a = document.getElementById('provincia');
    var b = document.getElementById('regione').value;
    if (b == 'NULL') {
        a.options.length = 0
    } else a.options[0] = new Option("Scegli Provincia", "NULL");
    document.getElementById('città').options.length = 0;
    document.getElementById('cap').options.length = 0;
    var c = b[0];
    var d = b[1];
    var e = return_province(b);
    e = e.sort();
    for (i = 0; i < e.length; i++) {
        var f = e[i].split(';');
        a.options[i + 1] = new Option(f[0], f[1])
    }
}
function carica_città () {
    var select_field = document.getElementById('città');
    var regione = document.getElementById('regione').value;
    var sigla_provincia = document.getElementById('provincia').value;
    if (sigla_provincia == 'NULL') {
        select_field.options.length = 0
    } else select_field.options[0] = new Option("Scegli Città", "NULL");
    document.getElementById('cap').options.length = 0;
    var lista_comuni = return_comuni(sigla_provincia);
    for (i = 0; i < lista_comuni.length; i++) {
        var curr = lista_comuni[i].split(';');
        select_field.options[i + 1] = new Option(curr[1], curr[0])
    }
}
function carica_cap() {
    var a = document.getElementById('cap');
    var b = document.getElementById('regione').value;
    var c = document.getElementById('provincia').value;
    var d = document.getElementById('città').value;
    var e = return_cap(d).split(',');
    if (d == 'NULL') {
        a.options.length = 0
    } else a.options[0] = new Option("Scegli CAP", "NULL");
    for (i = 0; i < e.length; i++) a.options[i + 1] = new Option(e[i], e[i])
}
Ecco come li richiamo nel form principale di inserimento.
Codice:
<select name="regione" id="regione" onchange="carica_province();"></select>

<select name="provincia" id="provincia" onchange="carica_città();"></select>

<select name="città" id="città" onchange="carica_cap();"></select>

<select name="cap" id="cap"></select></select>
Premetto che i dati delle regioni etc sono file javascript a parte, quindi non utilizzano nessun db.
Grazie
G.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, dovresti riuscire a passare la scelta fatta come parametro alla funzione e utilizzarlo per impostare l'attributo selected alla option creata
un esempio con il tuo codice
HTML:
<select name="regione" id="regione"></select>
<script>
    carica_regioni("Campania");
    
    function return_regioni() {
        return ["Abruzzo;1","Campania;2","Molise;3","Sicilia;4"]
         
    }
    function carica_regioni(regione) {
        var a = document.getElementById('regione');
        var b = return_regioni();
        b = b.sort();
        a.options[0] = new Option("Scegli Regione", "NULL");
        for (i = 0; i < b.length; i++) {
            var c = b[i].split(';');
            a.options[i + 1] = new Option(c[0], c[0]);
            if(regione && regione == c[0]) {
                a.options[i + 1].selected = true;
            }
        }
    }
</script>
 

djjunior

Utente Attivo
24 Lug 2004
99
1
8
Era abbastanza complicato adattare tutto lo script , pertanto ho cambiato in altro, con DB access, asp e ajax.
In pratica però sono bloccato sul fatto che ora questo script di default deve prendere i dati dal db, ora per la regione, tutto ok, mentre per la provincia e i comuni noni funziona, ecco lo script:
Codice:
<script type="text/javascript" language="javascript">
var estrai_province;
var regione_spedizione
   
function cerca_province() 
{

regione_spedizione=document.form.regione_spedizione.options[document.form.regione_spedizione.selectedIndex].value
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        estrai_province= new XMLHttpRequest();
        estrai_province.onreadystatechange = ricevi_province;
        estrai_province.open("GET", "estrai-province.asp?regione_spedizione="+regione_spedizione, true);
        estrai_province.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        estrai_province= new ActiveXObject("Microsoft.XMLHTTP");
        if (estrai_province) {
            estrai_province.onreadystatechange = ricevi_province;
            estrai_province.open("GET", "estrai-province.asp?regione_spedizione="+regione_spedizione, true);
            estrai_province.send();
        }
    }
}

     
  function ricevi_province() {   
    var province;       
	  if (estrai_province.readyState == 4) {	    
		  province=estrai_province.responseText;

			document.getElementById('provincia').innerHTML = province;
			 }
	}

var estrai_comuni;
var provincia_spedizione
   
function cerca_comuni() 
{

provincia_spedizione=document.form.provincia_spedizione.options[document.form.provincia_spedizione.selectedIndex].value
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        estrai_comuni= new XMLHttpRequest();
        estrai_comuni.onreadystatechange = ricevi_comuni;
        estrai_comuni.open("GET", "estrai-comuni.asp?provincia_spedizione="+provincia_spedizione, true);
        estrai_comuni.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        estrai_comuni= new ActiveXObject("Microsoft.XMLHTTP");
        if (estrai_comuni) {
            estrai_comuni.onreadystatechange = ricevi_comuni;
            estrai_comuni.open("GET", "estrai-comuni.asp?provincia_spedizione="+provincia_spedizione, true);
            estrai_comuni.send();
        }
    }
}
    
  function ricevi_comuni() {   
    var comuni;       
	  if (estrai_comuni.readyState == 4) {	    
		  comuni=estrai_comuni.responseText;

			document.getElementById('comuni').innerHTML = comuni;
			 }
	}

</script>
Che poi richiamo così:
Codice:
<% reg = rs.Fields("regione_spedizione")%>
<select name="regione_spedizione" id="regione_spedizione" onChange="cerca_province();">
<option value="0">Seleziona Regione</option>
<%
Set MyConn=Server.CreateObject("ADODB.Connection")
MyConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("DB/RPC.mdb")
		SQL = "Select * From regioni order by regione asc"
		Set RS = MyConn.Execute(SQL)
		While Not RS.EOF
		%>
<option value="<%=rs("id_regione")%>" <%if reg = ""& rs("id_regione") &"" then%> selected="selected"<%end if%>><%=rs("regione")%></option>
		<%
		RS.MoveNext
		Wend
		RS.Close
		Set RS = Nothing
MyConn.Close
Set MyConn = Nothing
%>
</select>
	<td id="provincia" width="159">
		</td>
	<td id="comuni" width="159">
		</td>
Come dicevo ora vorrei che le select si autoselezionerebbero con i dati prelevati dal mio db, per la regione ho risolto, mentre per gli altri non so come fare.
Grazie per l'aiuto.
G.
 
Discussioni simili
Autore Titolo Forum Risposte Data
Emix Select concatenate php sql ajax PHP 2
F [Javascript] select list concatenate - passare valore dalla prima alla seconda Javascript 7
S Select Concatenate Ajax, php, sql Presentati al Forum 16
neo996sps [Laravel 5.1 + ajax] Popolare select concatenate Regioni, Province, Comuni PHP 1
A select concatenate Javascript 1
N AsmSelect jQuery, Select concatenate jQuery 3
ciccio1892 Select concatenate con Ajax inviare scelta utente tramite post insieme ad altri dati form PHP 3
R select concatenate solo php PHP 12
S Select dinamiche concatenate Ajax 8
N Select concatenate Regioni-Province (con Variazione) Javascript 7
N Select concatenate Regioni-Province-Comuni (con Variazione) Javascript 14
B Select concatenate di tutte le province e comuni d'Italia aggiornato al 2007 Presenta il tuo Sito 0
L Ripetere Campi disabilitando input in riferimento ad un valore della select jQuery 0
otto9due Ordinare option di una select Javascript 5
W MySQL ciclo in SELECT MySQL 0
W MySQL SELECT list dinamica MySQL 0
M Select Option dentro una Table jQuery 2
G Colorare menu select attraverso ricerca php PHP 0
L problema con query select PHP 2
F menù select dinamico da db in php PHP 3
D popolare campi tra th alla select PHP 36
M Estrarre valore con SELECT COUNT PHP 0
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
L Select Dinamiche...da txt? PHP 3
E Php select option e ajax PHP 23
R Select concatenata che non funziona la seconda volta Ajax 3
L select join e sottrazione punti PHP 13
L input dati con inser into select ? PHP 4
V hierarchy-select jQuery 0
F query e form con select multipla PHP 17
T recupero valori select multipla da android Javascript 3
J php, scegliere autista da select e mostrare se ha fatto un incidente PHP 8
Tommy03 Select in ordine per numero di record MySQL 7
T problema con select dinamica con jquery Javascript 0
J Far comparire e scomparire un div con un select Javascript 1
M Opzioni select da 1 a 200 PHP 0
I Fatal error: Query Failed! SQL: SELECT * INTO OUTFILE PHP 1
C input in sostituzione della select PHP 2
G Insert into select - Aiuto MySQL 0
max1974 autocomplete trigger select jQuery 0
X [Select] Valori chiave non presenti in un'altra tabella MySQL 2
M Estrarre dati da una select HTML PHP 3
MarcoGrazia jquery validate, necessità di validare almeno un elemento select su due jQuery 1
T [PHP] Autocompilazione input multiple da una select PHP 1
Alex_70 [PHP] Visualizzare foto tramite select PHP 0
S [PHP] aggiornamento table tramite select senza ricaricare la pagina PHP 5
psicomia Gestione funzione in javascript in tabella richiamare"textarea" valori preimpostati in "select" Javascript 2
M [PHP] Problema con query select PHP 2
C [PHP] Controllo <select> comportamento anomalo PHP 2
G [PHP] Select con opzioni dipendenti da un'altra select PHP 3

Discussioni simili