Foros del Web » Programando para Internet » Javascript » Frameworks JS »

traer datos completando el DNI

Estas en el tema de traer datos completando el DNI en el foro de Frameworks JS en Foros del Web. Hola a todos Tengo un formulario que quiero que al poner el DNI, me auto complete el nombre, el apellido, y el barrio Tengo 2 ...
  #1 (permalink)  
Antiguo 31/07/2011, 14:22
 
Fecha de Ingreso: septiembre-2009
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 1
traer datos completando el DNI

Hola a todos
Tengo un formulario que quiero que al poner el DNI, me auto complete el nombre, el apellido, y el barrio

Tengo 2 Tablas en MySql

Tabla Persona (
Id
Nombre
Apellido
DNI
Barrio
)

Tabla Barrio (
Id
Nombre
)

El Barrio tiene que tomar el nombre por su Id correspondiente.

Repito:
En un formulario quisiera poner solo el DNI y que los otros campos se completen todos.

Alguna Idea

Muchas Gracias
  #2 (permalink)  
Antiguo 31/07/2011, 18:08
 
Fecha de Ingreso: septiembre-2009
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: traer datos completando el DNI

Hola, he conseguido traer los datos de la siguiente manera

index.php
Código HTML:
<script>
function chk_afiliado(){
var pos_url = 'estado1.php';
var n_afiliado = document.getElementById('n_afiliado').value;
var req = new XMLHttpRequest();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4 && (req.status == 200 || req.status == 304)) {
document.getElementById('resultado').innerHTML = req.responseText;
}
}
req.open('GET', pos_url +'?n_afiliado='+n_afiliado,true);
req.send(null);
}
}
</script> 

estado1.php

Código PHP:
require_once('coneccion/conn.php');

$usuarios mysql_query("SELECT * FROM persona WHERE dni = '".@$_REQUEST['dni']."'");
if (
mysql_num_rows($usuarios)==0){
echo @
$_REQUEST['n_afiliado'].' - <span class="rojo">El Cliente no esta en nuestra Base de Datos</span>';
}else{
$array mysql_fetch_array($usuarios);
//echo @$_REQUEST['n_afiliado'].' - ';
echo $array['nombre'].'/';
echo 
$array['apellido'].'/';
echo 
$array['edad'].'/';
//echo $array['barrio'];

Lo que me trae es dentro de un <div id="resultado"></div>

Pepe Rojas 35 3

Pepe = Nombre
Rojas = Apellido
35 = Edad
3 = Id del Barrio

Lo que necesito es poder sacar el nombre del barrio, y que todos los campos se agreguen a los input de un formulario

muchas Gracias
  #3 (permalink)  
Antiguo 01/08/2011, 01:43
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: traer datos completando el DNI

Te dejo un ejemplo para que te guíes y mires más o menos como hacerlo.

Código Javascript:
Ver original
  1. function chk_afiliado(){
  2.    
  3.     if (document.getElementById('dni').value != '') {
  4.     var url = 'consultar.php';
  5.     var dni = document.getElementById('dni').value;
  6.     var req = new XMLHttpRequest();
  7.     if (req) {
  8.     req.onreadystatechange = function() {
  9.     if (req.readyState == 4 && req.status == 200) {
  10.     var campos = req.responseText.split('//');
  11.     document.getElementById('nombre').value = campos[0];
  12.     document.getElementById('apellido').value = campos[1];
  13.     document.getElementById('barrio').value = campos[2];
  14.     }
  15.     }
  16.     req.open('POST', url +'?denei='+dni,true);
  17.     req.send(null);
  18.     }
  19.     }
  20. }

Código HTML:
Ver original
  1. <form action="pruebas.php" method="post">
  2.    
  3.     DNI: <input type="text" name="dni" id="dni">
  4.     <input type="button" value="Consultar" id="consultar" onclick="chk_afiliado();">
  5.     <br /><br />
  6.     Nombre: <input type="text" name="nombre" id="nombre" size="30" readonly><br />
  7.     Apellido: <input type="text" name="apellido" id="apellido" size="30" readonly><br />
  8.     Barrio: <input type="text" name="barrio" id="barrio" size="30" readonly><br /><br />
  9.    
  10.     <input type="submit" value="Enviar" id="enviar">
  11.    
  12. </form>

consultar.php



Código PHP:
Ver original
  1. <?php
  2.  
  3. $dni = (isset($_REQUEST['denei'])) ? $_REQUEST['denei'] : '';
  4.  
  5. $c = mysql_connect('localhost', 'user', 'pass');
  6. mysql_select_db('base_de_datos');
  7.  
  8. $sql = "select * from persona INNER JOIN barrio ON persona.barrio = barrio.id where dni='".$dni."' limit 1";
  9.  
  10. $res = mysql_query($sql);
  11.  
  12. if ($reg = mysql_fetch_array($res)) {
  13.     echo $reg[2].'//'.$reg[3].'//'.$reg[6];
  14. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 01/08/2011 a las 09:30 Razón: Elimine algo innecesario
  #4 (permalink)  
Antiguo 01/08/2011, 20:11
 
Fecha de Ingreso: septiembre-2009
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: traer datos completando el DNI

Hola andresdzphp que tal, he estado probando y el codigo que me dejastes como ejemplo me tira undefined

alguna idea de pq

muchs gracias
  #5 (permalink)  
Antiguo 01/08/2011, 20:24
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: traer datos completando el DNI

Cuando pone undefined es porque esta imprimiendo una variable no definida y es por problemas en tu consulta.

la base de datos con la que te hice ese ejemplo es:

Campo Tipo Cotejamiento Atributos Nulo Predeterminado Extra

Tabla persona:

id int(11) No None AUTO_INCREMENT
dni varchar(150) utf8_spanish_ci No None
nombre varchar(50) utf8_spanish_ci No None
apellido varchar(50) utf8_spanish_ci No None
barrio int(11) No None

Tabla barrio:

id int(11) No None AUTO_INCREMENT
nombre varchar(150) utf8_spanish_ci No None

Tienes que colocar los números de los campos correctamente y depende de tu consulta:

Código PHP:
Ver original
  1. if ($reg = mysql_fetch_array($res)) {
  2.     echo $reg[2].'//'.$reg[3].'//'.$reg[6];
  3. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 01/08/2011 a las 20:36
  #6 (permalink)  
Antiguo 02/08/2011, 12:52
 
Fecha de Ingreso: septiembre-2009
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: traer datos completando el DNI

Muchas Gracias, funciono a la perfeccion

Te agradezco tu tiempo
  #7 (permalink)  
Antiguo 27/09/2011, 21:17
 
Fecha de Ingreso: julio-2011
Ubicación: Popayán Cauca
Mensajes: 24
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: traer datos completando el DNI

Hola.
He leido este tema, así como su respuesta, y resulta que tengo una aplicacion en la que debo hacer lo mismo de que trata este tema, o sea, en un formulario, debo insertar un dato y de manera automática se deben llenar otros campos del mismo formulario.
Mi formulario tiene su tabla, su insert into y un extraer, lo que no logro captar es como adaptar los script que dan en la respuesta de esta consulta, para lograr lo que necesito.
En que parte va el código java script.Se ubica en la cabecera del formulario o en un archivo aparte.
El codigo php es un insert into, pero mi formulario ya tiene uno propio. Como adapto este codigo a mi insert into.
En un mensaje a continuacion ajunto los script del formulario y del inser into para que me indiquen como adaptar su respuesta a mi necesidad.

Etiquetas: ajax, dni, mysql, tabla, formulario, tracker
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 16:45.