AJAX pode ser usado para comunicação dinâmica com o banco de dados.
O exemplo a seguir demonstrará como uma página web lê informações do banco de dados via AJAX: Selecione um cliente na lista suspensa abaixo:
Quando o usuário seleciona um cliente na lista suspensa acima, uma função chamada "showCustomer()" é executada. Esta função é acionada pelo evento "onchange":
função mostrarCliente ( str ) { var xmlhttp ; se ( str == " " ) { documento.getElementById ( " txtHint " ) . innerHTML = " " ; se ( janela.XMLHttpRequest ) { // Código de execução do navegador IE7+, Firefox, Chrome, Opera, Safari xmlhttp = novo XMLHttpRequest ( ) ; outro { // Código de execução do navegador IE6, IE5 xmlhttp = novo ActiveXObject ( " Microsoft.XMLHTTP " ) ; xmlhttp.onreadystatechange = função ( ) { se ( xmlhttp.readyState == 4 && xmlhttp.status == 200 ) { documento.getElementById ( " txtHint " ) . } xmlhttp.open ( " GET " , " /try/ajax/getcustomer.php?q="+str , true ) ;A função showCustomer() executa as seguintes tarefas:
Verifique se um cliente foi selecionado
Criar objeto XMLHttpRequest
Execute a função criada quando a resposta do servidor estiver pronta
Envie a solicitação para um arquivo no servidor
Observe que adicionamos um parâmetro q à URL (com o conteúdo do campo de entrada)
A página do servidor chamada pelo JavaScript acima é um arquivo PHP denominado "getcustomer.php".
Também é fácil escrever arquivos de servidor em PHP ou em outras linguagens de servidor. Veja o exemplo correspondente escrito em PHP.
O código fonte em “getcustomer.php” é responsável por consultar o banco de dados e retornar os resultados em uma tabela HTML:
<%response.expires=-1sql="SELECT * FROM CUSTOMERS WHERE CUSTOMERID="sql=sql & "'" & request.querystring("q") & "'"set conn=Server.CreateObject("ADODB.Connection")conn.Provider="Microsoft.Jet.OLEDB.4.0"conn.Open(Server.Mappath("/db/northwind.mdb"))set rs=Server.CreateObject( "ADODB.recordset")rs.Open sql,connresponse.write("<table>")faça até rs.EOF para cada x em rs.Fields resposta.write("<tr><td><b>" & x.name & "</b></td>") resposta.write("<td>" & x. valor & "</td></tr>") próximo rs.MoveNextloopresponse.write("</table>")%>