Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/06/2014, 16:25
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Cargar input tipo text despues de una consulta a la BD

Aclaro que esto es offtopic pues Ajax es una técnica utilizada en JavaScript, no en PHP. Para ser breve, utilizaré el método Ajax de jQuery.

Código HTML:
Ver original
  1. Buscar: <input type = "text" id = "dato" />
  2.  
  3.     <form action = "modificar.php" method = "post">
  4.         Nombre: <input type = "text" name = "nombre" />
  5.         Apellido: <input type = "text" name = "Apellido" />
  6.         Edad: <input type = "text" name = "Edad" />
  7.         <input type = "hidden" name = "id" />
  8.         <input type = "submit" />
  9.     </form>

Código Javascript:
Ver original
  1. $("#dato").keypress(function(){
  2.     $.ajax({
  3.         url: "busqueda.php?id=" + this.value,
  4.         type: "GET",
  5.         dataType: "JSON"
  6.     }).done(function(response){
  7.         if (response.estado == 1){
  8.             $("form [name=id]").val(response.id);
  9.             $("form [name=nombre]").val(response.nombre);
  10.             $("form [name=apellido]").val(response.apellido);
  11.             $("form [name=edad]").val(response.edad);
  12.         }
  13.         else{
  14.             $("form [name=id]").val("");
  15.             $("form [name=nombre]").val("");
  16.             $("form [name=apellido]").val("");
  17.             $("form [name=edad]").val("");
  18.         }
  19.     });
  20. });

Código PHP:
Ver original
  1. $dato = mysqli_real_escape_string(strip_tags($_GET['id']));
  2. $query = mysqli_query($conexion, 'SELECT * FROM usuarios WHERE id = ' . $dato);
  3. if (mysqli_num_rows($query)){
  4.     $row = mysqli_fetch_array($query);
  5.     $datos = array('id' => $row['id'], 'nombre' => $row['nombre'], 'apellido' => $row['apellido'], 'edad' => $row['edad'], 'estado' => 1);
  6.     mysqli_free_result($query);
  7. }
  8. else
  9.     $datos = array('estado' => 0);
  10.  
  11. echo json_encode($datos);

Ahora, la explicación. En el documento tenemos una caja de texto en la cual ingresaré el nombre de la persona a buscar, mientras que abajo están las cajas que se cargarán con los datos de la persona encontrada. En el código JS, asigno el méto keypress a la caja de búsqueda, indicando que cuando se escriba en ella, se envíe una petición asíncrona al archivo busqueda.php, adjuntado el valor escrito. En el archivo PHP, desinfecto el dato recibido y realizo la búsqueda en la tabla de la base de datos, haciendo un filtrado con el dato recibido para el campo 'id', que en tu caso es el número de usuario. Si obtengo resultados de la búsqueda, creo un array en el que insertaré el 'id', 'nombre', 'apellido' y 'edad' de la persona encontrada en la búsqueda, pero además, habrá un quinto dato de nombre 'estado' con el valor 1, el cual le indicará al archivo anterior si se encontraron o no datos. Si no hay datos, asigno el 'estado' 0 al array. Finalmente, codifico el array en formato JSON y lo imprimo, siendo esta la respuesta de la petición asíncrona.

Regresando al método Ajax, una vez que reciba una respuesta a la petición, verifico el valor de 'estado'; si este es igual a 1, quiere decir que se encontraron coincidencias y procedo a llenar las respectivas cajas de texto con los datos recibidos, caso contrario, dejo las cajas vacías.

Adapta esto a lo que necesitas hacer.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand