Ver Mensaje Individual
  #5 (permalink)  
Antiguo 16/06/2009, 08:46
matak
 
Fecha de Ingreso: julio-2008
Ubicación: Alcañiz-Teruel-España
Mensajes: 182
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: Consulta base de datos en pop-up

buenas otra vez

Mirate este ejemplo

index.php
Código php:
Ver original
  1. <style>
  2.    TH {font-size: 10pt; color: white; font-weight: bold; background: #4682B4; text-align: left; padding-right: 1em; font-family: Consolas, “Nimbus Mono L”, “Andale Mono”, “Courier New”, Courier;}
  3.   TH.simple {font-size: 10pt; color: white; font-weight: bold; background: none; text-align: left; font-family: Consolas, &#8220;Nimbus Mono L”, “Andale Mono”, “Courier New”, Courier;}
  4.   TD {font-family: arial,verdana,arial;font-size: 10pt;}
  5.    TR.claro {/*heght:12x;*/ font-size: 8pt; background: #ECECEC; cursor:default;}
  6.   TR.oscuro {/*heght:12x;*/ font-size: 8pt; background: #CCCCCC; cursor:default;}
  7. </style>
  8. <script>
  9. var proceso_ajax= null;
  10.  
  11. //Funcion que crea el objeto ajax
  12. function objetoAjax(){
  13.     var xmlhttp=false;
  14.     try {
  15.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  16.     } catch (e) {
  17.         try {
  18.            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  19.         } catch (E) {
  20.             xmlhttp = false;
  21.     }
  22.     }
  23.  
  24.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  25.         xmlhttp = new XMLHttpRequest();
  26.     }
  27.     return xmlhttp;
  28. }
  29.  
  30. function buscaMail(obj,evt,page) {
  31.   keycode = (evt.keyCode==0) ? evt.which : evt.keyCode;
  32.   if (keycode!=8 && keycode!=13) {
  33.     document.getElementById('rowAyuda').style.display='table-row';
  34.       cadena=obj.value  + String.fromCharCode(keycode);
  35.       divcontenido = document.getElementById('panelAyuda');
  36.       if( proceso_ajax == null ) {
  37.             proceso_ajax = new objetoAjax();
  38.       }
  39.  
  40.       if( proceso_ajax.readyState != 4 || proceso_ajax.readyState != 0) {
  41.               proceso_ajax.abort();
  42.       }
  43.       proceso_ajax.open("POST", page+'?cadena='+cadena, true);
  44.       proceso_ajax.onreadystatechange=function() {
  45.         if (proceso_ajax.readyState==4) {
  46.             divcontenido.innerHTML = proceso_ajax.responseText;
  47.         }
  48.       }
  49.       proceso_ajax.send(null);
  50.   }else if (keycode==8){
  51.       obj.value="";
  52.  
  53.       if( proceso_ajax.readyState != 4 || proceso_ajax.readyState != 0) {
  54.               proceso_ajax.abort();
  55.       }
  56.       document.getElementById('email').value='';
  57.       document.getElementById('firstname').value='';
  58.       document.getElementById('lastname').value='';
  59.       document.getElementById('phone').value='';
  60.  
  61.       document.getElementById('panelAyuda').innetHTML='';
  62.       document.getElementById('rowAyuda').style.display='none';
  63.  
  64.   }
  65. }
  66.  
  67. function mandaDatos(email,firstname,lastname,phone) {
  68.   document.getElementById('email').value=email
  69.   document.getElementById('firstname').value=firstname;
  70.   document.getElementById('lastname').value=lastname;
  71.   document.getElementById('phone').value=phone;
  72.   document.getElementById('panelAyuda').innetHTML='';
  73.   document.getElementById('rowAyuda').style.display='none';
  74. }
  75.  
  76.  
  77. </script>
  78.  
  79. <TABLE>
  80.   <TR>
  81.     <TD width="100%" colspan="3">
  82.       <b>E-mail:</b>&nbsp;&nbsp;<i>(Introduce caracteres a buscar, busca si esta contenido)</i>
  83.     </TD>
  84.   </TR>
  85.   <TR>
  86.     <TD width="100%" colspan="3">
  87.       <input type="text" id="email" name="email" SIZE="20" MAXLENGTH="128" onkeypress="buscaMail(this, event, 'buscaMail.php');" autocomplete="off"/>
  88.     </TD>
  89.   </TR>
  90.   <TR id="rowAyuda" style="display:none;">
  91.     <TD width="100%" colspan="3" id="panelAyuda">
  92.     </TD>
  93.   </TR>
  94.   <TR>
  95.     <TD>
  96.       <b>firstname</b>
  97.     </TD>
  98.     <TD>
  99.       <b>lastname</b>
  100.     </TD>
  101.     <TD>
  102.       <b>phone</b>
  103.     </TD>
  104.   </TR>
  105.   <TR>
  106.     <TD>
  107.       <input type="text" id="firstname" name="firstname" SIZE="20" MAXLENGTH="32" READONLY autocomplete="off"/>
  108.     </TD>
  109.     <TD>
  110.       <input type="text" id="lastname" name="lastname" SIZE="20" MAXLENGTH="32" READONLY autocomplete="off"/>
  111.     </TD>
  112.     <TD>
  113.       <input type="text" id="phone" name="phone" SIZE="20" MAXLENGTH="24" READONLY autocomplete="off"/>
  114.     </TD>
  115.   </TR>
  116. </TABLE>


buscaMail.php
Código php:
Ver original
  1. <?PHP
  2. header('Content-Type: text/xml; charset=ISO-8859-1');
  3.  
  4. $conexion = mysql_connect($tuHost,$tuUser,$tuPas) or die ("No se puede conectar con el servidor");
  5.  
  6. mysql_select_db($tuDB) or die ("No se puede seleccionar la base de datos");
  7.  
  8. $sql="SELECT * FROM ost_clients WHERE email like '%".$_REQUEST['cadena']."%'";
  9.  
  10.  
  11. $consulta = mysql_query ($sql, $conexion)
  12.    or die (mysql_error ($conexion));
  13. $nfilas=mysql_num_rows($consulta);
  14.  
  15. if ($nfilas>0){
  16.  
  17. print ("\t\t<TABLE style=\"width:100%\" cellspacing=\"1px\" cellpadding=\"0px\">\n");
  18. ?>
  19.  
  20. <TH width="10%"><?PHP print(str_replace(" ","&nbsp;",'email')) ;?></TH>
  21. <TH width="40%"><?PHP print(str_replace(" ","&nbsp;",'firstname')) ;?></TH>
  22. <TH width="25%"><?PHP print(str_replace(" ","&nbsp;",'lastaname')) ;?></TH>
  23. <TH width="25%"><?PHP print(str_replace(" ","&nbsp;",'phone')) ;?></TH>
  24.  
  25. <?PHP
  26. $i=0;
  27. while($resultado = mysql_fetch_array($consulta)) {
  28.   if($i%2 == 0) {
  29.     $tono = " CLASS = \"oscuro\"";
  30.     $tonoOut = "'#CCCCCC'";
  31.   }
  32.   else {
  33.     $tono = " CLASS = \"claro\"";
  34.     $tonoOut = "'#ECECEC'";
  35.   }
  36.  
  37.   print ("\t\t\t<TR" . $tono ." onMouseOver = \" javascript: this.style.backgroundColor='#c6d6fd';\" onMouseOut = \" javascript:this.style.backgroundColor=" . $tonoOut . ";\" ondblclick=\" javascript:mandaDatos('".$resultado['email']."','".str_replace("'","\'",$resultado['firstname'])."','".str_replace("'","\'",$resultado['lastname'])."','".$resultado['phone']."') ;\">\n");
  38.  
  39.   $email=str_replace(strtolower($_REQUEST['cadena']),"<font color=orange>".strtolower($_REQUEST['cadena'])."</font>",strtolower($resultado['email']));
  40.   print ("\t\t\t\t<TD align=\"left\">" . $email . "</TD>\n");
  41.   print ("\t\t\t\t<TD align=\"left\">".$resultado['firstname']."</TD>\n");
  42.   print ("\t\t\t\t<TD align=\"left\">".$resultado['lastname']."</TD>\n");
  43.   print ("\t\t\t\t<TD align=\"left\">".$resultado['phone']."</TD>\n");
  44.  
  45.   print ("\t\t\t</TR>\n");
  46.   $i++;
  47. }
  48. print ("\t\t</TABLE>\n");
  49. }else{
  50. echo "No hay resultados";
  51. }
  52. ?>

Prueba y a ver si te puede servir.

Piensa que deberías paginar los resultados, es decir, p.e. sacar las 10 primeras coincidencias y crearte un paginador con el que fueras actualizado la tabla de resultados segun vas avanzando páginas...

Ya dirás algo
__________________
Si quieres puedes y si puedes debes. Imposible is nothing!!!