Salve,
ho un problema legato ad Ajax e un form a cui è applicato il codice: dovrei cancellare un record di una tabella del DB, i valori vengono scelti attraverso due select, in cui la scelta della prima determina i campi della seconda.
Nel momento in cui eseguo il form e passo i valori alla pagina successiva, il valore della seconda select (quello riempito dall'Ajax) risulta essere sempre vuoto.
Vi posto il codice di seguito:
-FORM:
codice:
Response.Write("<table>")
Response.Write("<form method='post' name='form' action='cancella_tagliacolore2.asp?prod_id="& Request.QueryString("prod_id")&"'>")
Response.Write("<tr>")
Response.Write("<td align=center>")
Response.Write("<font face='Verdana' color=white>Seleziona Taglia/Colore da cancellare</font>")
Response.Write("</td>")
Response.Write("</tr>")
Response.Write("<tr>")
Response.Write("<td height=20% style='background-color:'900000'; color:white'>")
dim var
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath(".") & "/xxx.mdb"
SQL=""
SQL=SQL & "Select * from Dettagli "
SQL=SQL & "Where [Det_ProID]='"& Request.QueryString("prod_id") &"'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3
Response.Write("<font color='white'>Taglia: </font><select size=1 cols=4 NAME='taglia' id='taglia' onchange=javascript:popolaElemento(this.value,"""& Request.QueryString("prod_id") &""")>")
Response.Write("<OPTION selected Value=Seleziona>Seleziona")
Do While Not rs.EOF
var=rs("Det_Taglia")
Response.Write("<OPTION value='"& var &"'> "& var &" ")
rs.MoveNext
Loop
rs.Close
set rs = Nothing
Response.Write("</select>")
Response.Write("</td>")
Response.Write("</tr>")
Response.Write("<tr>")
Response.Write("<td height=20% style='background-color:'900000'; color:white'>")
Response.Write("<font color='white'>Colore: </font><span id='selectColore'>")
Response.Write("<select size=1 cols=4 NAME='colore' id='colore'>")
Response.Write("</select>")
Response.Write("</span>")
Response.Write("</td>")
Response.Write("</tr>")
Response.Write("<tr>")
Response.Write("<td height=20% style='background-color:'900000'; color:white'><span id='selectQuantita'>")
Response.Write("<font color='white'>Quantità: </font><input type=""text"" name=""qnt"")>")
Response.Write("</span>")
Response.Write("</td>")
Response.Write("</tr>")
Response.Write("<tr>")
Response.Write("<td height=20% style='background-color:'900000'; color:white'>")
Response.Write("<input type='submit' value='Cancella'>")
Response.Write("</td>")
Response.Write("</tr>")
Response.Write("</form>")
Response.Write("</table>")
- AJAX:
codice:
var x;
function createRequestObj(){ // creo un'istanza XMLHttpRequest
var re;
var browser=navigator.appName;
if (browser=="Microsoft Internet Explorer"){ // sniff browser
re=new ActiveXObject("Microsoft.XMLHTTP");
} else re=new XMLHttpRequest();
return re;
}
var http=createRequestObj();
function popolaElemento(par1,par2){ // faccio una richiesta
//alert(par2); // debug
//popola_luoghi();
x=par1;
var y=par2 ;
var url="popola.asp?taglia=" + x + "&prod_id=" + y + "" ;
//alert(url);
http.open('get', url , true)
document.getElementById('selectColore').innerHTML="<select><option value=\"0\">caricamento in corso...</option></select>";
http.onreadystatechange=function(){
if (http.readyState==4 || http.readyState=="complete"){
if (http.status == 200){
//alert(http.responseText)
document.getElementById('selectColore').innerHTML=http.responseText;
} else {
document.getElementById('selectColore').innerHTML="<select><option>ERRORE "+http.status+"</option></select>";
}
}
}
http.send(null);
}
- POPOLA.asp
codice:
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath(".") & "/xxx.mdb"
SQL=""
SQL=SQL & "Select * from Dettagli Where "
SQL=SQL & "[Det_Taglia]='" & Request.QueryString("taglia") &"'"
SQL=SQL & " AND [Det_ProID]='" & Request.QueryString("prod_id") &"'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3
'Response.Write(SQL)
Response.Write("<select size=""1"" cols=""3"" name=""colore"" id=""colore"">")
Response.Write("<OPTION Selected Value=Seleziona>Seleziona</option>")
Do While Not (rs.EOF)
Response.Write("<OPTION Value="& rs("Det_Colore") &">"& rs("Det_Colore") &"</option>")
rs.MoveNext
Loop
Response.Write("</select>")
rs.Close
set rs = Nothing
conn.Close
set conn = Nothing
Per favore se c'è qualcuno che ne capisce un po' di piu di me di Ajax se puo darmi una mano.
Grazie 1000.
Ciao