Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/10/2008, 08:39
matak
 
Fecha de Ingreso: julio-2008
Ubicación: Alcañiz-Teruel-España
Mensajes: 182
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: hacer consulta al escribir en un input

lo que quieres hacer se puede, con el evento onkeypress y haciendo una pertición por medio de ajax al servidor. Pero ten en cuenta que realizará una consulta por cada tecla que rellenes en el formulario. No se si me explico

si introduces "maria" hará 5 consultas 1ª por "m", 2ª por "ma", 3ª por "mar",..,5ª por "maria".

el codigo sería algo asi:
BD:prueba
TABLA: usuarios
-nombre
-apellido
index.php
Código javascript:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  2.    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  3. <html>
  4. <head>
  5. <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  6. <script type="text/javascript">
  7. function objetoAjax(){
  8.     var xmlhttp=false;
  9.     try {
  10.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  11.     } catch (e) {
  12.         try {
  13.            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  14.         } catch (E) {
  15.             xmlhttp = false;
  16.     }
  17.     }
  18.  
  19.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  20.         xmlhttp = new XMLHttpRequest();
  21.     }
  22.     return xmlhttp;
  23. }
  24.  
  25. function detectkey(evt,obj) {
  26. keycode = (evt.keyCode==0) ? evt.which : evt.keyCode;
  27. if (keycode!=8) {
  28.     cadena=obj.value + String.fromCharCode(keycode);
  29.     pagina='filtra.php?cadena='+cadena;
  30. }else {
  31.     obj.value="";
  32.     pagina='filtra.php';
  33. }
  34.     divcontenido = document.getElementById('tabla_usuarios');
  35.     ajax=objetoAjax();
  36.     ajax.open("POST", pagina, true);
  37.     ajax.onreadystatechange=function() {
  38.       if (ajax.readyState==4) {
  39.         divcontenido.innerHTML = ajax.responseText
  40.       }
  41.     }
  42.     ajax.send(null);
  43. }
  44. </script>
  45. </head>
  46. <body>
  47.  
  48. <input type="text" name="nom" id="nom" value="" size="30" maxlength="30" onkeypress="detectkey(event,this)">
  49. <br />
  50. <div id="tabla_usuarios"></div>
  51. </body>
  52. </html>


filtra.php

Código php:
Ver original
  1. <?PHP
  2. if (isset($_REQUEST['cadena'])) {
  3.    $_REQUEST['cadena'];
  4.    $query="SELECT nombre,apellido FROM usuarios WHERE (nombre like 'cadena%')";
  5. }else $query="SELECT nombre,apellido FROM usuarios";
  6.  
  7.       $conexion = mysql_connect ($host, $usser, $pass)
  8.          or die ("No se puede conectar con el servidor");
  9.  
  10.       mysql_select_db ("prueba")
  11.          or die ("No se puede seleccionar la base de datos");
  12.      
  13.       $consulta=mysql_query($query,$conexion);
  14. ?>
  15. <TABLE>
  16. <TBODY>
  17. <TR>
  18. <TH>Nombre</TH>
  19. <TH>Apellido</TH>
  20. </TR>
  21. <?PHP
  22.       while($row = mysql_fetch_array($consulta)) {
  23.           echo "<TR>";
  24.           echo "<TD>".$row['nombre']."</TD>";
  25.           echo "<TD>".$row['apellido']."</TD>";
  26.           echo "</TR>";
  27.       }
  28. ?>
  29. </TBODY>
  30. </TABLE>


Pruebalo y me dices que lo he escrito pero no lo he ejecutado

Saludos
__________________
Si quieres puedes y si puedes debes. Imposible is nothing!!!