Ciao a tutti!
Sto lavorando su una serie di select concatenate, ho trovato in giro al forum uno script che fa al caso mio che ho modificato per aggiungerci una terza select(lo script è uello delle regioni e provincie)
quando vado a selectare la prima mi aggiorna la seconda e successivamente se selecto la seconda mi aggiorna la terza e fin qui tutto ok!
Il problema viene dopo quando, se decido di cambiare la seconda select giustamente mi riaggiorna la terza ma se invece riselecto la prima mi aggiorna la seconda ma non la terza!
essendo poco navigato con javascript non saprei rporpio come poter fare
dovrei trovare un modo per riaggiornare la terza, anche solo rimettendo ilv alore di default ossia una scritta tipo "prima scegli".
vi posto i vari codici cosi capite meglio:
pagina index.asp
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>AJAX e ASP - Select concatenate</title>
<script language="javascript">
var ricerca_pro;
function cerca()
{
var valorecampo = document.form1.tipo.options[document.form1.tipo.selectedIndex].value;
// per l'oggetto nativo XMLHttpRequest
if (window.XMLHttpRequest) {
ricerca_pro = new XMLHttpRequest();
ricerca_pro.onreadystatechange = ricevi;
ricerca_pro.open("GET", "cercah.asp?reg="+valorecampo,true);
ricerca_pro.send(null);
// per IE
} else if (window.ActiveXObject) {
ricerca_pro = new ActiveXObject("Microsoft.XMLHTTP");
if (ricerca_pro) {
ricerca_pro.onreadystatechange = ricevi;
ricerca_pro.open("GET", "cercah.asp?reg="+valorecampo,true);
ricerca_pro.send();
}
}
}
function cerca2()
{
var valorecampo = document.form1.h.options[document.form1.h.selectedIndex].value;
var valorecampo2 = document.form1.tipo.options[document.form1.tipo.selectedIndex].value;
// per l'oggetto nativo XMLHttpRequest
if (window.XMLHttpRequest) {
ricerca_pro = new XMLHttpRequest();
ricerca_pro.onreadystatechange = ricevi2;
ricerca_pro.open("GET", "cercal.asp?reg="+valorecampo+"®h="+valorecampo 2,true);
ricerca_pro.send(null);
// per IE
} else if (window.ActiveXObject) {
ricerca_pro = new ActiveXObject("Microsoft.XMLHTTP");
if (ricerca_pro) {
ricerca_pro.onreadystatechange = ricevi2;
ricerca_pro.open("GET", "cercal.asp?reg="+valorecampo+"®h="+valorecampo 2,true);
ricerca_pro.send();
}
}
}
function ricevi() {
var strRes;
var arrValori;
if (ricerca_pro.readyState == 4) {
strRes=ricerca_pro.responseText;
arrValori=strRes.split("|");
document.form1.h.options.length=0;
for(i=0;i<arrValori.length;i++)
{
document.form1.h.options[document.form1.h.options.length]= new Option(arrValori[i].split("|"));
}
}
}
function ricevi2() {
var strRes;
var arrValori;
if (ricerca_pro.readyState == 4) {
strRes=ricerca_pro.responseText;
arrValori=strRes.split("|");
document.form1.l.options.length=0;
for(i=0;i<arrValori.length;i++)
{
document.form1.l.options[document.form1.l.options.length]= new Option(arrValori[i].split("|"));
}
}
}
</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
Scegli la tipologia:
<select name="tipo" accesskey="1" tabindex="1" onchange="cerca()">
<option>Scegli</option>
<option value="montato">Armadi Montati</option>
<option value="componente">Componenti per Armadi</option>
</select>
Altezza:
<select name="h" accesskey="2" tabindex="2" onchange="cerca2()">
<option>Prima scegli</option>
</select>
Larghezza:
<select name="l" accesskey="3" tabindex="3" >
<option>Prima scegli</option>
</select>
</form>
</body>
</html>
pagina cercal.asp
<%
'apro connessione e istanzio oggetti
OpenDB(connAJAX)
reg = Request.QueryString("regh")
reg2 = Request.QueryString("reg")
strsql = "SELECT DISTINCT L FROM PRODOTTO WHERE H = '" ®2& "' AND ASSO='" ®& "' ORDER BY L DESC"
rs.open strsql
primo = 0
if not rs.eof then
do while not rs.eof
'compongo l'array con i risultati
if primo = 0 then
primo = 1
array_citta = rs("L")
else
array_citta = rs("L") & "|" & array_citta
end if
rs.movenext
loop
end if
w(array_citta)
CloseDB
%>
pagina cercah.asp
<%
'apro connessione e istanzio oggetti
OpenDB(connAJAX)
reg = Request.QueryString("reg")
strsql = "SELECT DISTINCT H FROM PRODOTTO WHERE ASSO = '" ®& "' ORDER BY H DESC"
rs.open strsql
primo = 0
if not rs.eof then
do while not rs.eof
'compongo l'array con i risultati
if primo = 0 then
primo = 1
array_citta = rs("H")
else
array_citta = rs("H") & "|" & array_citta
end if
rs.movenext
loop
end if
w(array_citta)
CloseDB
%>

Rispondi quotando