Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: miadagio en 29 Abril 2010, 19:08 pm



Título: duda sobre autocompletado
Publicado por: miadagio en 29 Abril 2010, 19:08 pm
 bueno tengo una duda, sobre autocompletado lo que pasa esque tengo el manejo de clientes y necesito que al ingresar un rut, si es que esta en la base de datos que se rellenen los demas campos, mi duda es que si se debe hacer necesariamente con ajax o se puede utilizar algo como javascrip, lo otro es que si se puede invocar una funcion PHP desde un evento onblur, como para aserlo por ai
bueno agradezco respues gracias


Título: Re: duda sobre autocompletado
Publicado por: WHK en 29 Abril 2010, 19:45 pm
haces un formulario atraves de pasos, primero muestra el input con el rut y un botón para enviar el formulario, luego lo procesas y si está en la base de datos muestras los demás imputs llenos y en caso contrario vacios :P

ahora si quieres hacerlo via jquery puedes crear un input de tipo texto con id="inp_rut" y luego desde js le das el evento blur y una petición con los datos que podría ser un array serializado o en json teniendo cuidado de los carácteres especiales.

Código
  1. $('#inp_rut').blur(function(){
  2.  
  3.   $.ajax({
  4.    type: 'POST',
  5.    url: .......,
  6.    data: ...... $('#inp_rut').val() ,
  7.    timeout: 10000,
  8.    success: function(data){
  9.     eval(data);
  10.     return true;
  11.    }
  12.   });
  13.  
  14. });

algo así.


Título: Re: duda sobre autocompletado
Publicado por: miadagio en 29 Abril 2010, 19:55 pm
gracias por responder tan pronto, pero se podra hacer sin que se precione el click sobre el boton del formulario solo con el onblur??


Título: Re: duda sobre autocompletado
Publicado por: WHK en 29 Abril 2010, 22:04 pm
si, ya te exploque como, si no entiendes entonces te recomendará que aprendieras un poco de jquery o si no de javascript aunque te va a salir mas complicado.

Código
  1. $('#inp_rut').blur(function(){
  2. /* Codigo aca */
  3. });

esto hace que el input con id inp_rut adquiera un onblur y se ejecutará lo que esté dentro del comentario.


Título: Re: duda sobre autocompletado
Publicado por: miadagio en 1 Mayo 2010, 21:07 pm
ia entendi gracias


Título: Re: duda sobre autocompletado
Publicado por: miadagio en 6 Mayo 2010, 03:15 am
me asalta una duda mas ya no puedo hacer que retorne la consulta no se como poner e buscado harto pero no logro entender como devuelvo los datos del usuario al formulario
cuando ago $('#madre').html(options) se me borra el todo los que tiene #madre y aparece solo los datos de la consulta como una cadena por eso trate de sakar con split pero no funciona
$('#add_rut').blur(function(){
       var id= $('#add_rut').val();
                    $.post('ver_clien.php', { rut: id}, function(options){
                        $('#madre').html(options);
                  array=(options).split(',');
                  alert(array)
                    });
  });


Título: Re: duda sobre autocompletado
Publicado por: miadagio en 8 Mayo 2010, 17:57 pm
lo resolvi con json asi
Código:
 $("#add_rut").blur(function(){
$.ajax({
url: 'ver_clien.php',
type: 'post',
dataType: "json", // para recibir en formato JSON
data: 'rut=' + $("#add_rut").val(),
success: function(data){ //cuando DATA tiene valor lleno
$("#add_nom").val(data[0]['nombre']);
$("#add_ape").val(data[0]['apellido']);
$("#add_mail").val(data[0]['mail']);
$("#add_tel").val(data[0]['num_tel']);
}
});
});

 });
y el php
Código:
<?php
require('../clases/user.class.php'); // llamo a la clase contenedora de las funciones

$objUser = new User; // creo el objeto
$rut = $_POST['rut']; //tomo la variable

$consulta=$objUser->mostrar_user($rut); // consulto

$data = array(); // creo el arreglo

while ($usuario = mysql_fetch_array($consulta)) // bucle con el arreglo de la consulta
{
  $data[] = $usuario; // cargo el arreglo en un array DATA
}

header('content-type: application/json');

echo json_encode($data);  // Codifico en formato JSON

?>