Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/07/2012, 05:15
toni88
 
Fecha de Ingreso: julio-2012
Ubicación: Mallorca
Mensajes: 2
Antigüedad: 12 años, 4 meses
Puntos: 0
Error interno ajax.autocompleter de scriptaculous

Resulta que estoy haciendo el ejemplo de ajax.autocompleter de la pagina oficial. En principio no veo ningun error en el javascript ni en el php que captura los datos de la base de datos dependiendo de los caracteres que escriba el usuario.

Con firebug consigo capturar este error donde se puede ver que realmente se envían los caracteres por post pero no se porque extraña razón no recibe la respuesta.




Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3.  
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  5.     <head>
  6.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  7.        
  8.         <script type="text/javascript" src="javascript/prototype.js"></script>
  9.         <script type="text/javascript" src="javascript/scriptaculous.js"></script>
  10.  
  11.  
  12.         <script>
  13.  
  14.             window.onload = function () {
  15.              
  16.                 new Ajax.Autocompleter(
  17.                     "txtAutocomplete",
  18.                      "divAutocomplete",
  19.                     "acLocalidades.php",
  20.                      {paramName: "caracteres"}
  21.                 );
  22.             }  
  23.  
  24.         </script>
  25.    
  26.         <title>autocompletar_remoto</title>
  27.        
  28.        
  29.            
  30.         <style>
  31.            
  32.             .etiqueta{
  33.                 float: left;
  34.                 padding: 5px;
  35.             }
  36.            
  37.             div.autocomplete{
  38.                 margin: 10px 0 0 8px;
  39.                
  40.             }
  41.            
  42.             div.autocomplete ul{
  43.                 list-style-type: none;
  44.                 margin: 0;
  45.                 padding: 0;
  46.             }
  47.            
  48.             div.autocomplete ul li{
  49.                 list-style-type: none;
  50.                
  51.                 margin: 0;
  52.                 padding: 2px;
  53.                 height: 24px;
  54.                 cursor: pointer;
  55.             }
  56.            
  57.             div.autocomplete ul li.selected{
  58.                 background-color: #ffb;
  59.             }
  60.         </style>
  61.     </head>
  62.  
  63.     <body>
  64.         <div class="contenedor">
  65.        
  66.             <div class="etiqueta">Localidad:</div>
  67.             <div class="campo"><input type="text" id="txtAutocomplete" autocomplete="off" /></div>
  68.             <div id="divAutocomplete" class="autocomplete"></div>
  69.        
  70.            
  71.         </div>
  72.        
  73.     </body>
  74. </html>

Aquí podemos ver el php que busca dentro de la base de datos las localidades.

Lo he comprobado y funciona perfectamente ya que cambiando la variable caracteres por un string por ejemplo "ba" me devuelve todas las localidades que lo contengan...


Código PHP:
Ver original
  1. <?
  2.     // Autocomplete de localidades
  3.    
  4.     include ('DB.php');
  5.    
  6.     $caracteres = $_POST('caracteres');
  7.    
  8.    
  9.     if ($caracteres != ""){
  10.         $xMunicipios = $bd->ExecuteField("provincias", "provincia", "provincia LIKE '%%$caracteres%%'" );
  11.        
  12.         $respuesta = "<ul>";
  13.        
  14.         foreach ($xMunicipios as $municipio) {
  15.             $respuesta .= "<li>" .$municipio['provincia']. "</li>";
  16.         }
  17.        
  18.         $respuesta .= "</ul>";
  19.        
  20.  
  21.     }
  22.    
  23.     echo $respuesta;
  24. ?>

Lo curioso es que si dejo la variable $caracteres = "ba" en el php y arranco el html y escribo cualquier cosa... recibo datos! que alguien me lo explique por favor..aqui podeis verlo:



Ya no se que hacer... llevo horas buscando por internet y no he solucionado nada... quiero que funcione de una vez por las horas que he estado buscando una solución!!!

Gracias!

Última edición por toni88; 15/07/2012 a las 05:22