Non so se possa essere utile (è da un secolo che non uso asp). Questo è una pagina con due select concatenate, REGIONI-PROVINCE
codice:
<%@ Language=VBScript %>
<%
option explicit
Response.Buffer = true
onload
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Pagina senza titolo</title>
<script type="text/javascript" src="../../../js/sajax.js"></script>
<script language="javascript" type="text/javascript">
// <!CDATA[
function recupera_province(v)
{
var id_regione = v.value;
if(id_regione == "")
{
$("div1").innerHTML = "";
return;
}
var parametri = "id_regione=" + id_regione;
sajax("?comando_ajax=trova_province", onload, parametri);
function onload()
{
var t = this.request.responseText;
$("div1").innerHTML = t;
}
}
// ]]>
</script>
</head>
<body>
<table>
<tr>
<td>Regioni:</td>
<td><select id="regioni" onchange="recupera_province(this);" ><%=regioni()%></select></td>
</tr>
<tr>
<td>Province</td>
<td><div id="div1"></div></td>
</tr>
</table>
</body>
</html>
<%
sub onload()
dim comando_ajax
comando_ajax = Request("comando_ajax")
if(comando_ajax = "trova_province") then
trova_province
end if
end sub
sub trova_province()
dim id_regione
id_regione = Request("id_regione")
response.Clear
response.Write province(id_regione)
response.End
end sub
function regioni()
dim db, rs, sql
set db = server.CreateObject("ADODB.Connection")
set rs = server.CreateObject("ADODB.RECORDSET")
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\dati\test\test.mdb;User Id=admin;Password=;"
sql = "SELECT * FROM REGIONI"
rs.Open sql, db, 3, 3
dim s
s = "<option value=""""></option>"
do while not rs.EOF
s = s & "<option value=""" + rs(0) + """ >" & rs(1) & "</option>"
rs.MoveNext
loop
regioni = s
rs.Close: set rs = nothing
db.Close: set db = nothing
end function
function province(id_regione)
dim db, rs, sql, s
set db = server.CreateObject("ADODB.Connection")
set rs = server.CreateObject("ADODB.RECORDSET")
db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\dati\test\test.mdb;User Id=admin;Password=;"
sql = "SELECT * FROM Q_PROVINCIE WHERE CODICE_ISTAT_REGIONE = """ & id_regione & """"
rs.Open sql, db, 3, 3
's = "<select size=""" & rs.RecordCount & """ >"
s = "<select>"
do while not rs.EOF
s = s & "<option value=""" + rs(0) + """ >" & rs(1) & "</option>"
rs.MoveNext
loop
s = s & "</select>"
province = s
rs.Close: set rs = nothing
db.Close: set db = nothing
end function
%>
il file javascript è
codice:
// File JScript
function sajax(url, onload, parameters, onerror)
{
parameters = (parameters == undefined)? "" : parameters;
//creazione oggetto per richiesta web
var objHTTP = getXMLHttp();
objHTTP.open("post", url, true);
objHTTP.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
objHTTP.setRequestHeader('Content-length',parameters.length);
objHTTP.setRequestHeader('Connection', 'close');
objHTTP.onreadystatechange = function()
{
if (objHTTP.readyState == 4)
{
if (objHTTP.status == 200 || objHTTP.status == 0)
{
this.request = objHTTP;
if(onload) onload.call(this);
}
else {if(onerror && typeof(onerror) == "function") {onerror(defaultError); return;}else {defaultError(); return;}}
}
};
objHTTP.send(parameters);
function getXMLHttp()
{
var xmlhttp = null;
if(window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest(); // Gecko (Firefox, Moz), KHTML (Konqueror, Safari), Opera, Internet Explorer 7
}
else if(window.ActiveXObject)
{
try
{
xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); // Internet Explorer 6
}
catch(e)
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer 4,5
}
}
else
{
xmlhttp = null;
}
return xmlhttp;
};
function defaultError()
{
alert("ERRORE NELLA TRASMISSIONE DATI!");
};
}
//al posto di mettere document.getElementById("div1"), mettere $("div1")
//da prototype.js
function $() {
var elements = new Array();
for (var i = 0; i < arguments.length; i++) {
var element = arguments[i];
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}