AJAX se puede utilizar para comunicarse dinámicamente con la base de datos.
El siguiente ejemplo demostrará cómo una página web lee información de la base de datos a través de AJAX: Seleccione un cliente en la lista desplegable a continuación:
Cuando el usuario selecciona un cliente en la lista desplegable anterior, se ejecuta una función llamada "showCustomer()". Esta función se activa mediante el evento "onchange":
función mostrarCliente ( str ) { var xmlhttp ; si ( cadena == " " ) { documento.getElementById ( " txtHint " ) internalHTML = " " ; si ( ventana . XMLHttpRequest ) { // Código de ejecución del navegador IE7+, Firefox, Chrome, Opera, Safari xmlhttp = nuevo Solicitud XMLHttp ( ) ; demás { // código de ejecución del navegador IE6, IE5 xmlhttp = nuevo ActiveXObject ( " Microsoft.XMLHTTP " ) ; xmlhttp.onreadystatechange = función ( ) { si ( xmlhttp . readyState == 4 && xmlhttp . estado == 200 ) { documento.getElementById ( " txtHint " ) . } xmlhttp open ( " OBTENER " , " /try/ajax/getcustomer.php?q= " + str , verdadero ) ;La función showCustomer() realiza las siguientes tareas:
Comprobar si un cliente ha sido seleccionado
Crear objeto XMLHttpRequest
Ejecute la función creada cuando la respuesta del servidor esté lista.
Enviar la solicitud a un archivo en el servidor.
Tenga en cuenta que agregamos un parámetro q a la URL (con el contenido del campo de entrada)
La página del servidor llamada por el JavaScript anterior es un archivo PHP llamado "getcustomer.php".
También es fácil escribir archivos de servidor en PHP u otros lenguajes de servidor. Vea el ejemplo correspondiente escrito en PHP.
El código fuente en "getcustomer.php" es responsable de consultar la base de datos y devolver los resultados en una tabla HTML:
<%response.expires=-1sql="SELECCIONAR * DE CLIENTES DONDE CLIENTEID="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>")hacer hasta rs.EOF para cada x en rs.Fields respuesta.write("<tr><td><b>" & x.name & "</b></td>") respuesta.write("<td>" & x. valor & "</td></tr>") siguiente rs.MoveNextloopresponse.write("</table>")%>