Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/04/2011, 03:41
Avatar de Xirant
Xirant
 
Fecha de Ingreso: noviembre-2010
Mensajes: 21
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Autocomplete en CI

Hola, destor! Lo primero darte las gracias y disculparme por no agradecerte antes que me eches un cable :o)

He revisado tu código, se adapta más o menos a lo que debo hacer, lo único, tengo que hacer la codificación en java (no se si me explico bien, lo siento). He estado estos tres últimos días dándole vueltas y algo he mejorado, pero sigo sin conseguirlo. Estos son los pasos que he dado y el punto donde me he quedado =>

1 ) He preparado un input en un buscador con un 'onkeyup' que carga una función java que pasa por post el valor del input. Esta es la función =>

Código PHP:
function librosBusqueda (){
   var 
lalala =  document.getElementById("busquedalibro").value;
   $.
post('http://localhost/proyecto/index.php/libros/devuelveLibrosAutocomplete','titulo=' lalala,getResponseAutocomplete);

La función llama por un lado al valor del input y lo pasa a un controlador 'Devuelve librosautocomplete. Este es el controlador =>

Código PHP:
    public function devuelveLibrosAutocomplete(){

        
$titulo $this->input->post("titulo");

        
        if(
$titulo != false)
        {
            
$libros_array $this->Libros_model->buscarLibros("titulo",$titulo);

            
$loquesedebever "[";
            
$cont 0;
            foreach (
$libros_array as $libros){
                
                if(
$cont == 0)
                {
                    
$loquesedebever $loquesedebever "'" $libros["titulo"] . "'";
                }
                else
                {
                    
$loquesedebever $loquesedebever "," "'" $libros["titulo"] . "'";
                }
                
$cont $cont 1;
            }
            
$loquesedebever $loquesedebever "]";
           echo 
json_encode($loquesedebever);
        }
    } 
Llama al modelo, que tiene la búsqueda en la base de datos y hace la revisión, haciendo al final un echo en JSON y llevando a la última función, en java, que es la getResponseAutocomplete =>

Código PHP:
function getResponseAutocomplete(response)
{
    
alert(response);

    var 
libros = eval(response);

    $(
"#busquedalibro").autocomplete(libros);


Aquí es donde creo que estoy teniendo el problema, que seguro que es una tontería. He puesto un alert para ver que los parámetros de la BD lelgan bien, y de hecho lo hacen, se cargan los ´titulos de la base de datos según la letra que ponga y que la contengan. El problema es que a la hora de convertirlo en array de java, algo estoy escribiendo mal, sin duda, o eso creo al menos.

He probado con eval tal cual está escrito. Con eval con paréntesis y +, y no consigo que carguen como autocomplete.