Foros del Web » Programando para Internet » Javascript »

Autocompletado de input.

Estas en el tema de Autocompletado de input. en el foro de Javascript en Foros del Web. Hola, tengo un autocompletado que no me sale y quisiera que por favor me ayudaran. Hago un select a la base de datos y recupero ...
  #1 (permalink)  
Antiguo 07/03/2013, 16:59
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 11 años, 7 meses
Puntos: 10
Autocompletado de input.

Hola, tengo un autocompletado que no me sale y quisiera que por favor me ayudaran.
Hago un select a la base de datos y recupero un número (id_aviso). Con dicho número necesito completar los demás input.

index.php

Código PHP:
<?php
include("conexion_autocompletado.php");//se incluyen los datos para realizar la conexion a su base de datos
$con ="(SELECT id_aviso
FROM usuarios)
UNION ALL
(SELECT id_aviso
FROM avisos)
UNION ALL
(SELECT id_aviso
FROM clientes)"
//consulta para seleccionar las palabras a buscar, esto va a depender de su base de datos//consulta para seleccionar las palabras a buscar, esto va a depender de su base de datos
$query mysql_query($con);
?>
<script>
    $(function() {
        
        <?php
        
        
while($rowmysql_fetch_array($query)) {//se reciben los valores y se almacenan en un arreglo
        
      
$elementos[]= '"'.$row['id_aviso'].'"';
      
}
$arregloimplode(", "$elementos);
//junta los valores del array en una sola cadena de texto

        
?>    
        
        var availableTags=new Array(<?php echo $arreglo?>);//imprime el arreglo dentro de un array de javascript
                
        $( "#num_cliente").autocomplete({
            minLength: 2,
            source: availableTags
        });
        
    });
    
    
    function nuevoAjax()

    var xmlhttp=false; 
    try 
    { 
        xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
    }
    catch(e)
    { 
        try
        { 
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
        } 
        catch(E) { xmlhttp=false; }
    }
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); } 

    return xmlhttp; 


function completar(id_aviso)
{
 var ajax=nuevoAjax();
 ajax.open("GET", "load-carga.php?id="+id_aviso, false);
 ajax.send(null);
 document.getElementById('name').value=ajax.responseText;
}
    </script>  


<input name="num_cliente" type="text" id="num_cliente" size="9" />
<input type="text" name="name" id="name"  size="10" onBlur="completar(this.value)" />   
<input type="text" name="apellidos" id="name"  size="10"/>
load-carga.php

Código PHP:
 <?php
include("conexion_autocompletado.php");
$id_aviso=trim($_GET['id']);
$sql mysql_query("SELECT name,apellidos FROM usuarios WHERE id_aviso='$id_aviso'") or die (mysql_error());
$rowmysql_fetch_assoc($sql);

echo 
"".$row['name']."";
echo 
"".$row['apellidos']."";
?>
Gracias.
  #2 (permalink)  
Antiguo 07/03/2013, 17:04
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Autocompletado de input.

Y que es lo que no funciona? El php o el js?

probaste la url load-carga.php?id=xxx para ver si funciona?

PD: si el id es numerico, cambia el trim por un intval.
  #3 (permalink)  
Antiguo 07/03/2013, 17:09
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 11 años, 7 meses
Puntos: 10
Respuesta: Autocompletado de input.

Cita:
Iniciado por walterdevel Ver Mensaje
Y que es lo que no funciona? El php o el js?

probaste la url load-carga.php?id=xxx para ver si funciona?

PD: si el id es numerico, cambia el trim por un intval.
Hola, el load-carga.php si funciona bien.
  #4 (permalink)  
Antiguo 07/03/2013, 17:27
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Autocompletado de input.

Que imprime tu pagina en esta zona? new Array(<?php echo $arreglo; ?>);

Podrias probar cambiarlo por esto: [<?php echo $arreglo; ?>];


PD: Yo te recomendaría pasar el ajax a jQuery, ya lo estás usando para el document ready.
  #5 (permalink)  
Antiguo 08/03/2013, 03:15
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 11 años, 7 meses
Puntos: 10
Respuesta: Autocompletado de input.

Cita:
Iniciado por walterdevel Ver Mensaje
Que imprime tu pagina en esta zona? new Array(<?php echo $arreglo; ?>);

Podrias probar cambiarlo por esto: [<?php echo $arreglo; ?>];


PD: Yo te recomendaría pasar el ajax a jQuery, ya lo estás usando para el document ready.
Gracias, el problema estaba en onBlur="completar(this.value)" que tenia el input cambiado:

Código PHP:
<input name="num_cliente" type="text" id="num_cliente" size="9" onBlur="completar(this.value)" />
<
input type="text" name="name" id="name"  size="10"  />   
<
input type="text" name="apellidos" id="apellidos"  size="10"/> 
Y ahora como le doy arrays a ajax.responseText; ???

El php lo he puesto así:

Código PHP:
 <?php
include("Connections/conexion.php");
$id_aviso $_GET['id'];
$sql ="(SELECT A.id_aviso,A.telefonos,A.telefonos3,A.movil,A.dni,A.name,A.apellidos,B.localidad,B.calle
 
FROM clientes A,dir_clientes B WHERE A.id_aviso='$id_aviso' and B.id_aviso='$id_aviso')
 
UNION ALL
 
(SELECT id_aviso,telefonos,telefonos3,movil,dni,name,apellidos,localidad,calle
 
FROM avisos WHERE id_aviso='$id_aviso' )
 
UNION ALL
 
(SELECT U.id_aviso,U.telefonos,U.telefonos3,U.movil,U.dni,U.name,U.apellidos,D.localidad,D.calle
 
FROM usuarios U,dir_usuarios D WHERE  U.id_aviso='$id_aviso' and D.id_aviso='$id_aviso')"
;
$query mysql_query($sql);
while(
$row mysql_fetch_array($query))
    {

   
$datos[] = array(
            
'id_aviso'          => $row['id_aviso'],
            
'telefonos'          => $row['telefonos'],
            
'name'      => utf8_encode($row['name']),
            
'apellidos'       => utf8_encode($row['apellidos']),
            
'calle'       => utf8_encode($row['calle']),
            
'localidad'        => utf8_encode($row['localidad']),
            
'style'       =>  $style
           
           
        
);
    }
    
// convertimos el array de datos a formato json
    
echo json_encode($datos);
?>
Gracias

Última edición por satjaen; 08/03/2013 a las 03:24

Etiquetas: ajax, autocompletado, input, php, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:14.