Chiedo un aiuto per un processo basato su ASP,
che utilizzando tre pagine mi permette di scegliere
tra marca, modello e allestimento di una automobile.
Il database da cui estrae i dati è propietario, quindi
terrò nascosta la parte di dichiarazione delle stringhe
sql e dei relativi dati d'accesso (ID e PW).
Il processo funziona, ma nel caricare la pagina successiva,
non riesco a intercettare la caption scelta dall'utente e
a farla rimanere nel combo precedente..spero di essermi fatto capire.
A seguire, posto il nucleo delle prime due pagine, a titolo d'esempio.
Non avendo io costruito le functions javascript, non mi trovo
molto nel modificarle, ma ho piena fiducia di trovare
qualche dritta dalle vostre menti geniali..
----------------------------------
pagina1
----------------------------------
<html>
<head>
<title>Scegli</title>
<script language="JavaScript">
<!--
function GoUrl(tipo,valore){
if(valore != "**"){
switch(tipo){
case 1:
var url = "scegli_modello.asp?CodMarca="+valore;
break;
case 2:
var url = "scegli_allest.asp?CodMarca=<%=CodMarca%>&CodModello="+valore;
break;
case 3:
var url = "elenco.asp?CodMarca=<%=CodMarca%>&CodModello=<%=CodModello%>&CodAllestimento="+valore;
break;
case 4:
var url='marca.asp?Largh=<%=Largh%>&Serie=<%=Serie%>&Diam=<%=Diam%>&IndCar=<%=IndCar%>&CodVel=<%=CodVel%>&CodMarca=<%=CodMarca%>&CodModello=<%=CodModello%>&CodAllestimento=<%=CodAllestimento%>&Stag='+valore;
break;
case 5:
var url='disegno.asp?Largh=<%=Largh%>&Serie=<%=Serie%>&Diam=<%=Diam%>&IndCar=<%=IndCar%>&CodVel=<%=CodVel%>&CodMarca=<%=CodMarca%>&CodModello=<%=CodModello%>&CodAllestimento=<%=CodAllestimento%>&Stag='+valore;
break;
case 6:
var url='scheda_prodotto.asp?CodProd=<%=CodProd%>&CodDisegno='+valore;
break;
}
window.location.replace(url);
}
}
function SetSelect(){
var CodMarca = "<%=CodMarca%>";
if(CodMarca != ""){
for(var i = 0; i<document.forms[0].CodMarca.length; i++){
if(document.forms[0].CodMarca.value == CodMarca){
document.forms[0].CodMarca.selected = true;
break;
}
}
}
var CodModello = "<%=CodModello%>";
if(CodModello != ""){
for(var i = 0; i<document.forms[0].CodModello.length; i++){
if(document.forms[0].CodModello.value == CodModello){
document.forms[0].CodModello.selected = true;
break;
}
}
}
var CodAllestimento = "<%=CodAllestimento%>";
if(CodAllestimento != ""){
for(var i = 0; i<document.forms[0].CodAllestimento.length; i++){
if(document.forms[0].CodAllestimento.value == CodAllestimento){
document.forms[0].CodAllestimento.selected = true;
break;
}
}
}
if(document.forms[0].CodDisegno){
document.forms[0].CodDisegno[0].selected = true;
}
}
function MM_goToURL() { //v3.0
var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
for (i=0; i<(args.length-1); i+=2) eval(args+".location='"+args[i+1]+"'");
}
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script>
</head>
<form name="cerca" method="post" action="scegli_modello.asp">
<td>Scegli la marca della tua vettura:</td>
<td><select name="CodMarca" id="CodMarca" onChange="GoUrl(1,this.value)">
<option value="**" selected>Scegli la marca</option>
<%
Dim rs
Dim sql
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation=3
sql="SELECT MarcheAuto.CodMarcaAuto, MarcheAuto.Descrizione FROM ModelliAuto RIGHT OUTER JOIN Allestimenti ON"
sql=sql+" ModelliAuto.CodMarca = Allestimenti.CodMarca AND ModelliAuto.CodModello = Allestimenti.CodModello LEFT OUTER"
sql=sql+" JOIN MarcheAuto ON ModelliAuto.CodMarca = MarcheAuto.CodMarcaAuto WHERE (MarcheAuto.TipoOperazione <> 'D')"
sql=sql+" GROUP BY MarcheAuto.CodMarcaAuto, MarcheAuto.Descrizione ORDER BY MarcheAuto.Descrizione"
rs.open sql,conn,0, 1
do until rs.EOF
%>
<option value="<%=rs("CodMarcaAuto")%>"><%=rs("Descrizione")%></option>
<%
rs.movenext
loop
rs.close
%>
</select>
<%
set rs=nothing
conn.close
set conn=nothing
%>
</td>
</tr>
</form>
</table>
</body>
</html>
----------------------------------
pagina2
----------------------------------
<%
dim CodMarca
CodMarca = Request("CodMarca")
session("marca") = Request("CodMarca")
%>
<script language="JavaScript">
<!--
function GoUrl(tipo,valore){
if(valore != "**"){
switch(tipo){
case 1:
var url = "scegli_modello.asp?CodMarca="+valore;
break;
case 2:
var url = "scegli_allest.asp?CodMarca=<%=CodMarca%>&CodModello="+valore;
break;
case 3:
var url = "elenco.asp?CodMarca=<%=CodMarca%>&CodModello=<%=CodModello%>&CodAllestimento="+valore;
break;
case 4:
var url='marca.asp?Largh=<%=Largh%>&Serie=<%=Serie%>&Diam=<%=Diam%>&IndCar=<%=IndCar%>&CodVel=<%=CodVel%>&CodMarca=<%=CodMarca%>&CodModello=<%=CodModello%>&CodAllestimento=<%=CodAllestimento%>&Stag='+valore;
break;
case 5:
var url='disegno.asp?Largh=<%=Largh%>&Serie=<%=Serie%>&Diam=<%=Diam%>&IndCar=<%=IndCar%>&CodVel=<%=CodVel%>&CodMarca=<%=CodMarca%>&CodModello=<%=CodModello%>&CodAllestimento=<%=CodAllestimento%>&Stag='+valore;
break;
case 6:
var url='scheda_prodotto.asp?CodProd=<%=CodProd%>&CodDisegno='+valore;
break;
}
window.location.replace(url);
}
}
function SetSelect(){
var CodMarca = "<%=CodMarca%>";
if(CodMarca != ""){
for(var i = 0; i<document.forms[0].CodMarca.length; i++){
if(document.forms[0].CodMarca.value == CodMarca){
document.forms[0].CodMarca.selected = true;
break;
}
}
}
var CodModello = "<%=CodModello%>";
if(CodModello != ""){
for(var i = 0; i<document.forms[0].CodModello.length; i++){
if(document.forms[0].CodModello.value == CodModello){
document.forms[0].CodModello.selected = true;
break;
}
}
}
var CodAllestimento = "<%=CodAllestimento%>";
if(CodAllestimento != ""){
for(var i = 0; i<document.forms[0].CodAllestimento.length; i++){
if(document.forms[0].CodAllestimento.value == CodAllestimento){
document.forms[0].CodAllestimento.selected = true;
break;
}
}
}
if(document.forms[0].CodDisegno){
document.forms[0].CodDisegno[0].selected = true;
}
}
</script>
<form name="cerca" method="post" action="scegli_allest.asp">
<tr>
<td width="24">1</td>
<td width="189">Hai scelto la marca:</td>
<td width="145"> <select name="CodMarca" id="CodMarca" onChange="GoUrl(1,this.value)">
<option value="**">Scegli la marca</option>
<%
Dim rs
Dim sql
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation=3
sql="...stringa sql funzionante..."
rs.open sql,conn,0, 1
do until rs.EOF
%>
<option value="<%=rs("CodMarcaAuto")%>"><%=rs("Descrizione")%></option>
<%
rs.movenext
loop
rs.close
%>
</select></td>
<td width="548"><% response.write session("marca")%></td>
</tr>
<tr>
</tr>
<tr>
<td>2
<td>
<%
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation=3
sql="...stringa sql funzionante..."
rs.open sql,conn,0, 1
%>
Scegli il modello:
<td><select id="CodModello" name="CodModello" onChange="GoUrl(2,this.value)">
<option value="**" selected>Scegli il modello</option>
<%
do until rs.EOF
%>
<option value="<%=rs("CodModello")%>"><%=rs("Descrizione")%></option>
<%
rs.movenext
loop
%>
<%
rs.Close
set rs=nothing
conn.close
set conn=nothing
%>
</select></td>
<td> </td>
</tr>
</form>
</table>
</body>
</html>
------------------------------------------------
Sostanzialmente, invece di visualizzare a monitor il codice scelto dall'utente,
mi servirebbe intercettare la stringa che contiene la marca, e posizionarla
nel <select>, per far in modo che l'utente, scegliendo il modello, abbia ancora
a vista la marca che ha scelto.
In futuro mi servirebbe anche una dritta su come far in modo che questo processo
appaia in un pop-up e, scelti marca---->modello--->allestimento, questi tre campi
si vadano a posizionare su tre <input> di tipo text che memorizzino le scelte fatte.
Spero di essermi fatto intendere, e di aver stimolato a sufficienza le vostre fervide menti.
A.
che utilizzando tre pagine mi permette di scegliere
tra marca, modello e allestimento di una automobile.
Il database da cui estrae i dati è propietario, quindi
terrò nascosta la parte di dichiarazione delle stringhe
sql e dei relativi dati d'accesso (ID e PW).
Il processo funziona, ma nel caricare la pagina successiva,
non riesco a intercettare la caption scelta dall'utente e
a farla rimanere nel combo precedente..spero di essermi fatto capire.
A seguire, posto il nucleo delle prime due pagine, a titolo d'esempio.
Non avendo io costruito le functions javascript, non mi trovo
molto nel modificarle, ma ho piena fiducia di trovare
qualche dritta dalle vostre menti geniali..
----------------------------------
pagina1
----------------------------------
<html>
<head>
<title>Scegli</title>
<script language="JavaScript">
<!--
function GoUrl(tipo,valore){
if(valore != "**"){
switch(tipo){
case 1:
var url = "scegli_modello.asp?CodMarca="+valore;
break;
case 2:
var url = "scegli_allest.asp?CodMarca=<%=CodMarca%>&CodModello="+valore;
break;
case 3:
var url = "elenco.asp?CodMarca=<%=CodMarca%>&CodModello=<%=CodModello%>&CodAllestimento="+valore;
break;
case 4:
var url='marca.asp?Largh=<%=Largh%>&Serie=<%=Serie%>&Diam=<%=Diam%>&IndCar=<%=IndCar%>&CodVel=<%=CodVel%>&CodMarca=<%=CodMarca%>&CodModello=<%=CodModello%>&CodAllestimento=<%=CodAllestimento%>&Stag='+valore;
break;
case 5:
var url='disegno.asp?Largh=<%=Largh%>&Serie=<%=Serie%>&Diam=<%=Diam%>&IndCar=<%=IndCar%>&CodVel=<%=CodVel%>&CodMarca=<%=CodMarca%>&CodModello=<%=CodModello%>&CodAllestimento=<%=CodAllestimento%>&Stag='+valore;
break;
case 6:
var url='scheda_prodotto.asp?CodProd=<%=CodProd%>&CodDisegno='+valore;
break;
}
window.location.replace(url);
}
}
function SetSelect(){
var CodMarca = "<%=CodMarca%>";
if(CodMarca != ""){
for(var i = 0; i<document.forms[0].CodMarca.length; i++){
if(document.forms[0].CodMarca.value == CodMarca){
document.forms[0].CodMarca.selected = true;
break;
}
}
}
var CodModello = "<%=CodModello%>";
if(CodModello != ""){
for(var i = 0; i<document.forms[0].CodModello.length; i++){
if(document.forms[0].CodModello.value == CodModello){
document.forms[0].CodModello.selected = true;
break;
}
}
}
var CodAllestimento = "<%=CodAllestimento%>";
if(CodAllestimento != ""){
for(var i = 0; i<document.forms[0].CodAllestimento.length; i++){
if(document.forms[0].CodAllestimento.value == CodAllestimento){
document.forms[0].CodAllestimento.selected = true;
break;
}
}
}
if(document.forms[0].CodDisegno){
document.forms[0].CodDisegno[0].selected = true;
}
}
function MM_goToURL() { //v3.0
var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
for (i=0; i<(args.length-1); i+=2) eval(args+".location='"+args[i+1]+"'");
}
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script>
</head>
<form name="cerca" method="post" action="scegli_modello.asp">
<td>Scegli la marca della tua vettura:</td>
<td><select name="CodMarca" id="CodMarca" onChange="GoUrl(1,this.value)">
<option value="**" selected>Scegli la marca</option>
<%
Dim rs
Dim sql
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation=3
sql="SELECT MarcheAuto.CodMarcaAuto, MarcheAuto.Descrizione FROM ModelliAuto RIGHT OUTER JOIN Allestimenti ON"
sql=sql+" ModelliAuto.CodMarca = Allestimenti.CodMarca AND ModelliAuto.CodModello = Allestimenti.CodModello LEFT OUTER"
sql=sql+" JOIN MarcheAuto ON ModelliAuto.CodMarca = MarcheAuto.CodMarcaAuto WHERE (MarcheAuto.TipoOperazione <> 'D')"
sql=sql+" GROUP BY MarcheAuto.CodMarcaAuto, MarcheAuto.Descrizione ORDER BY MarcheAuto.Descrizione"
rs.open sql,conn,0, 1
do until rs.EOF
%>
<option value="<%=rs("CodMarcaAuto")%>"><%=rs("Descrizione")%></option>
<%
rs.movenext
loop
rs.close
%>
</select>
<%
set rs=nothing
conn.close
set conn=nothing
%>
</td>
</tr>
</form>
</table>
</body>
</html>
----------------------------------
pagina2
----------------------------------
<%
dim CodMarca
CodMarca = Request("CodMarca")
session("marca") = Request("CodMarca")
%>
<script language="JavaScript">
<!--
function GoUrl(tipo,valore){
if(valore != "**"){
switch(tipo){
case 1:
var url = "scegli_modello.asp?CodMarca="+valore;
break;
case 2:
var url = "scegli_allest.asp?CodMarca=<%=CodMarca%>&CodModello="+valore;
break;
case 3:
var url = "elenco.asp?CodMarca=<%=CodMarca%>&CodModello=<%=CodModello%>&CodAllestimento="+valore;
break;
case 4:
var url='marca.asp?Largh=<%=Largh%>&Serie=<%=Serie%>&Diam=<%=Diam%>&IndCar=<%=IndCar%>&CodVel=<%=CodVel%>&CodMarca=<%=CodMarca%>&CodModello=<%=CodModello%>&CodAllestimento=<%=CodAllestimento%>&Stag='+valore;
break;
case 5:
var url='disegno.asp?Largh=<%=Largh%>&Serie=<%=Serie%>&Diam=<%=Diam%>&IndCar=<%=IndCar%>&CodVel=<%=CodVel%>&CodMarca=<%=CodMarca%>&CodModello=<%=CodModello%>&CodAllestimento=<%=CodAllestimento%>&Stag='+valore;
break;
case 6:
var url='scheda_prodotto.asp?CodProd=<%=CodProd%>&CodDisegno='+valore;
break;
}
window.location.replace(url);
}
}
function SetSelect(){
var CodMarca = "<%=CodMarca%>";
if(CodMarca != ""){
for(var i = 0; i<document.forms[0].CodMarca.length; i++){
if(document.forms[0].CodMarca.value == CodMarca){
document.forms[0].CodMarca.selected = true;
break;
}
}
}
var CodModello = "<%=CodModello%>";
if(CodModello != ""){
for(var i = 0; i<document.forms[0].CodModello.length; i++){
if(document.forms[0].CodModello.value == CodModello){
document.forms[0].CodModello.selected = true;
break;
}
}
}
var CodAllestimento = "<%=CodAllestimento%>";
if(CodAllestimento != ""){
for(var i = 0; i<document.forms[0].CodAllestimento.length; i++){
if(document.forms[0].CodAllestimento.value == CodAllestimento){
document.forms[0].CodAllestimento.selected = true;
break;
}
}
}
if(document.forms[0].CodDisegno){
document.forms[0].CodDisegno[0].selected = true;
}
}
</script>
<form name="cerca" method="post" action="scegli_allest.asp">
<tr>
<td width="24">1</td>
<td width="189">Hai scelto la marca:</td>
<td width="145"> <select name="CodMarca" id="CodMarca" onChange="GoUrl(1,this.value)">
<option value="**">Scegli la marca</option>
<%
Dim rs
Dim sql
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation=3
sql="...stringa sql funzionante..."
rs.open sql,conn,0, 1
do until rs.EOF
%>
<option value="<%=rs("CodMarcaAuto")%>"><%=rs("Descrizione")%></option>
<%
rs.movenext
loop
rs.close
%>
</select></td>
<td width="548"><% response.write session("marca")%></td>
</tr>
<tr>
</tr>
<tr>
<td>2
<td>
<%
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation=3
sql="...stringa sql funzionante..."
rs.open sql,conn,0, 1
%>
Scegli il modello:
<td><select id="CodModello" name="CodModello" onChange="GoUrl(2,this.value)">
<option value="**" selected>Scegli il modello</option>
<%
do until rs.EOF
%>
<option value="<%=rs("CodModello")%>"><%=rs("Descrizione")%></option>
<%
rs.movenext
loop
%>
<%
rs.Close
set rs=nothing
conn.close
set conn=nothing
%>
</select></td>
<td> </td>
</tr>
</form>
</table>
</body>
</html>
------------------------------------------------
Sostanzialmente, invece di visualizzare a monitor il codice scelto dall'utente,
mi servirebbe intercettare la stringa che contiene la marca, e posizionarla
nel <select>, per far in modo che l'utente, scegliendo il modello, abbia ancora
a vista la marca che ha scelto.
In futuro mi servirebbe anche una dritta su come far in modo che questo processo
appaia in un pop-up e, scelti marca---->modello--->allestimento, questi tre campi
si vadano a posizionare su tre <input> di tipo text che memorizzino le scelte fatte.
Spero di essermi fatto intendere, e di aver stimolato a sufficienza le vostre fervide menti.
A.