Ciao,
ci sono impazzito anch'io all'inizio, ma adesso funzionano benissimo.
spero di aiutarti, ti posto parte del codice che uso io spiegandoti alcune cose a cosa servono, considera che io le select dinamiche in questo caso le uso per selezionare una SuperCategoria di prodotti, scelta questa ho l'elenco delle Categorie relative alla S Categoria scelta ed infine i prodotti appartenenti alla SCategoria ed alla Categoria.
ho creato 2 pagine: pro_cerca.asp (dove visualizzo le select) e pro_cerca_db.asp dove va tutto il codice che gestisce le select
file pro_cerca.asp
Codice PHP:
<%@ Language=VBScript %>
<% Session.LCID = 1040 %>
<% Response.Buffer = True %>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF8" />
<title>Cerca prodotto.</title>
<script type="text/javascript" language="javascript">
//<![CDATA[
url = "";
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", pagina, true);
x.send(null);
}
}
//]]>
</script>
</head>
<body onload="caricaPagina([COLOR=red]'pro_cerca_db.asp?type=scategorie','Scategorie'[/COLOR] );">
[COLOR=green]<!--
all'apertura della pagina il tag BODY richiama la funzione CaricaPagina() che appunto carica il file pro_cerca_db.asp passandogli 2 valori:
il primo (type=scategorie) è quello che sceglie il fieldtype
il secondo (Scategorie) è l'id del div che contiene la select delle scategorie
tu invece hai messo tutto nel javascript: [I]function caricaPagina(dbcomuni.asp,AHAH_regioni)[/I] e non riesci più a cambiare i valori
-->[/COLOR]
<form method="post" action=".........
<div id="Scategorie"><select name="id_scategoria" style="width:400px;"><option value=""></option></select></div>
<div id="Categorie"><select name="id_categoria" style="width:400px;"><option value=""></option></select></div>
<div id="Prodotti"><select name="pro_id" style="width:400px;"><option value=""></option></select></div>
</form>
file pro_cerca_db.asp
Codice PHP:
<%
value = replace(request("value")&"", "'", "'")
fieldtype = request("type")
set ds = new DinamicSelect
ds.DataBase = CartellaDatabase & NomeDatabase
' S categorie
if fieldtype = "scategorie" then
ds.DefaultText = "Seleziona una S categoria"
ds.sql = " SELECT * FROM scategorie ORDER BY scat_nome "
ds.SelectValue = "id_scategoria" ' campo che viene passato alla query del fieldtype successivo (categorie)
ds.SelectText = "scat_nome" ' campo visualizzato nella <option> della select
ds.evento = " onchange=""caricaPagina('pro_cerca_db.asp?type=categorie&value=' " &_
"+ this.options[this.options.selectedIndex].value,'Categorie');""" ' Categorie è l'id del prossimo div
ds.NomeCampo = "id_scategoria" ' nome del campo
end if
' categorie
if fieldtype = "categorie" then
ds.DefaultText = "Seleziona una categoria"
ds.sql = " SELECT * FROM categorie WHERE id_scategoria ="& Clng(value) &" ORDER BY cat_nome "
ds.selected = value
ds.SelectValue = "contatore"
ds.SelectText = "cat_nome"
ds.evento = " onchange=""caricaPagina('pro_cerca_db.asp?type=prodotti&value=' " &_
"+ this.options[this.options.selectedIndex].value,'Prodotti');"""
ds.NomeCampo = "contatore"
end if
' prodotti
if fieldtype = "prodotti" then
SQLcerca = " SELECT id_scategoria, id_categoria FROM categorie WHERE contatore = "& Clng(value)
Set RScerca = Conn.Execute(SQLcerca)
ds.DefaultText = "seleziona un prodotto"
ds.sql = "SELECT pro_id, pro_nome FROM prodotti WHERE " & _
" pro_cancellato = 0 " & _
" AND pro_scat = "& RScerca("id_scategoria") &" " & _
" AND pro_cat = "& RScerca("id_categoria") &" " & _
" ORDER BY pro_nome "
ds.selected = value
ds.SelectValue = "pro_id"
ds.SelectText = "pro_nome"
ds.evento = ""
ds.NomeCampo = "pro_id"
end if
Response.Write (ds.CreaDinamicSelect())
set ds = nothing
%>
spero ti sia più chiaro così il funzionamento.
fulvio