ottimo...ho cambiato un po il codice per le mie esigenze e ho risolto, anche se in parte...
ho 2 domande:
1) quando utilizzo un nome nella select composta da spazi non funziona (se inserisco nella select marco antonelli mi trova i dati di marco e non di marco antonelli)
2) come faccio a mettere i dati in un campo di testo?
il link per provare lo script è QUESTO
mentre il codice delle 3 pagine è:
PAGINA a.asp
codice:
<html>
<head>
<script src="selectcustomer.js"></script>
</head>
<body>
<form>
Select a Customer:
<select name="customers" onchange="showCustomer(this.value)">
<%
Dim Conn
Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& server.MapPath("ajax.mdb")
'Scrivo la mia query sql
sql = "SELECT * FROM Rubrica"
'E creo il recordset
Set Rec = Server.CreateObject ("ADODB.Recordset")
Rec.Open sql, Conn, 3, 3
do while not Rec.eof
valore=Rec("nome")
nome=Rec("nome")
response.write("<option value=" & nome &">" & valore &"</option>")
Rec.movenext
loop %>
<option value="ND" selected>SELEZIONA...</option>
</select>
</form>
<div id="txtHint">Customer info will be listed here.</div>
</p>
</body>
</html>
PAGINA getcustomer.asp
codice:
<%
response.expires=-1
sql="SELECT * FROM rubrica WHERE nome="
sql=sql & "'" & request.querystring("q") & "'"
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("ajax.mdb"))
set rs = Server.CreateObject("ADODB.recordset")
rs.Open sql, conn
response.write("<table>")
do until rs.EOF
for each x in rs.Fields
response.write("<tr><td>" & x.name & "</td>")
response.write("<td>" & x.value & "</td></tr>")
next
rs.MoveNext
loop
response.write("</table>")
%>
PAGINA selectcustomer.js
codice:
var xmlHttp
function showCustomer(str)
{
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Your browser does not support AJAX!");
return;
}
var url="getcustomer.asp";
url=url+"?q="+str;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
function stateChanged()
{
if (xmlHttp.readyState==4)
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}