Foros del Web » Programando para Internet » PHP »

Rellenar campos de texto a partir de un select a la BD

Estas en el tema de Rellenar campos de texto a partir de un select a la BD en el foro de PHP en Foros del Web. hola,queria saber si alguien me puede orientar un poco en como lo puedo hacer para que al ingresar un nombre en un campo de texto ...
  #1 (permalink)  
Antiguo 15/03/2011, 08:01
Avatar de avergaf  
Fecha de Ingreso: marzo-2011
Mensajes: 99
Antigüedad: 13 años, 9 meses
Puntos: 0
Rellenar campos de texto a partir de un select a la BD

hola,queria saber si alguien me puede orientar un poco en como lo puedo hacer para que al ingresar un nombre en un campo de texto y hacerle click a un boton me rellene el resto de los campos de texto con la informacion referente al primer campo que rellene,todo esto en php,o tenria que usar alguna funcion de js?
  #2 (permalink)  
Antiguo 15/03/2011, 08:04
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 7 meses
Puntos: 394
Respuesta: Rellenar campos de texto a partir de un select a la BD

Exacto debes colocar esa pregunta en el foro de JS ya que con PHP no se puede a no ser que envíes los datos a otra pagina, hagas la consulta, y de ahí muestres de nuevo el formulario con los campos traídos de la consulta...

Mientras con jquery y ajax lo haces todo mas fácil y quemas menos código.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 15/03/2011, 08:13
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: Rellenar campos de texto a partir de un select a la BD

Hola Avergaf,

son muchos datos los que tenes que mostrar?
  #4 (permalink)  
Antiguo 15/03/2011, 08:17
Avatar de avergaf  
Fecha de Ingreso: marzo-2011
Mensajes: 99
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Rellenar campos de texto a partir de un select a la BD

hola,son solo 4 campos a los que tengo que meterle informacion,conosco una forma de hacerlo en php,pero como lo indico jotaincubus tengo que acceder a otra pagina,y la idea es que lo haga en la misma
  #5 (permalink)  
Antiguo 15/03/2011, 08:22
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: Rellenar campos de texto a partir de un select a la BD

en total son 5 campos?

y para eso vas a usar ajax???

hay una forma de hacerlo con php y js sin usar ajax
  #6 (permalink)  
Antiguo 15/03/2011, 08:23
Avatar de avergaf  
Fecha de Ingreso: marzo-2011
Mensajes: 99
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Rellenar campos de texto a partir de un select a la BD

D: como seria eso??
  #7 (permalink)  
Antiguo 15/03/2011, 08:46
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: Rellenar campos de texto a partir de un select a la BD

y es re facil:
cuando ingresas el NOMBRE en el campo de texto y haces click en un BUTTON
con alguna funcion JS le envias el valor ingresado y SIN ENVIAR el formulario
validas si hay coincidencias en la base para RELLENAR los otros campos.

cualquiera diria que tenes que ir a otra pagina y traer los datos, es valido, pero no hace falta.

como lo haces? simple:

1- guarda todos los registros en campos HIDDEN asignandole algun ID que diferencie a cada grupo de registros.

2-si le voy a enviar el NOMBRE ingresado desde la funcion js entonces ese va a ser el ID de cada grupo de gistros que quiero mostrar

3- aca te dejo la funcion
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function changeImage(nombre){
  3.     var idImage=document.getElementById('HID_'+nombre).value;  //NOMBRE INGRESADO!!!!
  4.     alert(idImage);  // LO MUESTRO PARA VER SI EXISTE
  5.        //CARGO EN OTRAS VARIABLES EL RESTO DE LOS DATOS SEGUN EL NOMBRE INGRESADO
  6.      
  7.     var hidPath=document.getElementById('HID_img_staff_'+idImage).value;
  8.     var hidCargo=document.getElementById('HID_cargo_staff_'+idImage).value;
  9.     var hidSchool=document.getElementById('HID_school_staff_'+idImage).value;
  10.     var hidNombre=document.getElementById('HID_nombre_staff_'+idImage).value;
  11.     var hidCV=document.getElementById('HID_cv_staff_'+idImage).value;
  12.     //SIEMPRE QUE HALLA RESULTADOS
  13.         //ACTUALIZO LA INFORMACION
  14.        //ACA YO PUSE TODO EN UNA CAPA PERO VOS TENES ADAPTARLO A TU SISTEMA
  15.     if(hidPath!=null || hidPath!=''){
  16.         document.getElementById("staff_info").innerHTML='<table><tr><td rowspan="5"><img height="80px" width="80px" src="'+hidPath+'" /></td></tr><tr><td>&nbsp;</td></tr><tr><td><strong>'+hidNombre+'</strong></td></tr><tr><td>'+hidCargo+'</td></tr><tr><td>'+hidSchool+'</td></tr></table>';
  17.         document.getElementById("staff_info").innerHTML += '<div style="" id="txt_staff">'+hidCV+'<div>';
  18.     }else{
  19.         return false;
  20.     }
  21. }
  22. </script>
IMPORTANTE: TENE EN CUENTA EL NOMBRE DE LOS HIDDEN.

LA QUERY ES FACIL
$sql='select * from staff';
$res=mysql_query($sql);
while($row=mysql_fetch_object($res)){
<input type="hidden" name="HID_img_staff_<?php echo $row->nombre; ?>" id="HID_img_staff_<?php echo $row->nombre; ?>" value="<?php echo $imagen; ?>" />
<input type="hidden" name="HID_cargo_staff_<?php echo $row->nombre; ?>" id="HID_cargo_staff_<?php echo $row->nombre; ?>" value="<?php echo $aStaff->getCargo()->getName(); ?>" />
<input type="hidden" name="HID_school_staff_<?php echo $row->nombre; ?>" id="HID_school_staff_<?php echo $row->nombre; ?>" value="<?php echo $aStaff->getSchool()->getName() ?>" />
<input type="hidden" name="HID_nombre_staff_<?php echo $i; ?>" id="HID_nombre_staff_<?php echo $row->nombre; ?>" value="<?php echo $aStaff->getlastName().', '.$aStaff->getName(); ?>" />
<input type="hidden" name="HID_cv_staff_<?php echo $row->nombre; ?>" id="HID_cv_staff_<?php echo $row->nombre; ?>" value="<?php echo $aStaff->getCvDescription(); ?>" />

}


LA IDEA ES QUE OCULTES LA INFORMACION Y SEGUN LO QUE INGRESES EN EL TEXTBOX RECUPERES LA INFO TANTO DESEADA
  #8 (permalink)  
Antiguo 15/03/2011, 09:30
Avatar de avergaf  
Fecha de Ingreso: marzo-2011
Mensajes: 99
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Rellenar campos de texto a partir de un select a la BD

=O muchas gracias! lo probaré para ver si me funciona
  #9 (permalink)  
Antiguo 16/03/2011, 06:31
Avatar de avergaf  
Fecha de Ingreso: marzo-2011
Mensajes: 99
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Rellenar campos de texto a partir de un select a la BD

De donde sale la variable staff_info?
Código:
document.getElementById("staff_info").innerHTML='<table><tr><td rowspan="5"><img height="80px" width="80px" src="'+hidPath+'" /></td></tr><tr><td>&nbsp;</td></tr><tr><td><strong>'+hidNombre+'</strong></td></tr><tr><td>'+hidCargo+'</td></tr><tr><td>'+hidSchool+'</td></tr></table>';
        document.getElementById("staff_info").innerHTML += '<div style="" id="txt_staff">'+hidCV+'<div>';
  #10 (permalink)  
Antiguo 16/03/2011, 08:10
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: Rellenar campos de texto a partir de un select a la BD

Hola staff_info es un div cualquiera que va a ser el contenedor donde yo quiero mostrar los datos.
pone en algun lado de tu pagina un div XXX para que se vean los resultados.
el ejemplo es para que vos lo adaptes a tu sistema.

ya se, mostrame la consulta que trae TODOS los campos que queres mostrar
ej
Código SQL:
Ver original
  1. 'select campo1, campo2, campo3, campo4, campo5' FROM mitabla'
y lo hacemos
  #11 (permalink)  
Antiguo 16/03/2011, 08:37
Avatar de avergaf  
Fecha de Ingreso: marzo-2011
Mensajes: 99
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Rellenar campos de texto a partir de un select a la BD

select emp_rut,emp_fono,ciu_nom,emp_mail from empresas
inner join ciudades on
empresas.ciu_cod=ciudades.ciu_cod
where emp_nom='$nombre'


$nombre seria el nombre del text box donde se escribirá el nombre de la empresa a consultar y a partir de este se obtendran los datos...
  #12 (permalink)  
Antiguo 16/03/2011, 09:16
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: Rellenar campos de texto a partir de un select a la BD

Cita:
Iniciado por avergaf Ver Mensaje
select emp_rut,emp_fono,ciu_nom,emp_mail from empresas
inner join ciudades on
empresas.ciu_cod=ciudades.ciu_cod
where emp_nom='$nombre'


$nombre seria el nombre del text box donde se escribirá el nombre de la empresa a consultar y a partir de este se obtendran los datos...
***************
BUENO ESTO ADAPTALO A TU SISTEMA, PERO DEBERIA FUNCIONAR

Código PHP:
Ver original
  1. $sql='select * from empresas
  2. inner join ciudades on
  3. empresas.ciu_cod=ciudades.ciu_cod';
  4. $res=mysql_query($sql);
  5. if(mysql_num_rows($res) > 0){
  6.   while($row=mysql_fetch_object(res)){
  7.   //VAMOS A EMPEZAR CON UN SOLO CAMPO, LUEGO VAS AGREGANDO LOS DEMAS
  8.   ?>
  9.   <input type="hidden" name="HID_mail_<?php echo $row->emp_nom; ?>" id="HID_mail_<?php echo $row->emp_nom; ?>" value="<?php echo $row->emp_mail; ?>" />
  10.            
  11.   <?php
  12.   }
  13. }
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function valida(){
  3.     var nombre = document.getElementById('nombre').value; //RECUPERO EL VALOR INGRESADO
  4.     alert(nombre);
  5.    
  6.     var mail = document.getElementById('HID_mail_'+nombre).value; //ARMO EL ID DEL HIDDEN QUE TIENE EL MAIL CON EL VALOR INGRSADO
  7.     alert(mail); //muestro el email que CORRESPONDE AL NOMBRE INGRESADO , SI FUNCIONA ESTO SOMOS LOS REYES DEL CARNAVAL
  8.  
  9.     if(mail != null || mail != ''){ //tiene que existir el div para que no de error
  10.         //EN EL CONTENEDOR CREO UN INPUT EDITABLE CON EL MAIL QUE CORRESPONDE AL NOMBRE INGRESADO
  11.         document.getElementById("contenedor").innerHTML = '<input type="text" name="mail" id="mail" value="'+mail+'" />';
  12.     }else{
  13.                 alert('no hay resultados');
  14.         return false;
  15.     }
  16. }
  17. </script>


?>
Código HTML:
Ver original
  1. <input type="text" name="nombre" id="nombre" value="" />
  2. <div id="contenedor" name="contenedor"></div>
  3. <input type="button" name="boton" onclick="return valida();" />

DESPUES ANDA PROBANDO UNO POR UNO LOS CAMPOS QUE QUERES MOSTRAR
  #13 (permalink)  
Antiguo 16/03/2011, 09:21
Avatar de avergaf  
Fecha de Ingreso: marzo-2011
Mensajes: 99
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Rellenar campos de texto a partir de un select a la BD

=O muchisisisimas gracias! lo probaré para ver como me anda :D
  #14 (permalink)  
Antiguo 16/03/2011, 09:56
Avatar de avergaf  
Fecha de Ingreso: marzo-2011
Mensajes: 99
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Rellenar campos de texto a partir de un select a la BD

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\Xnotas\probando1.php on line 13

me eta tirando ese error,hice una pagina nueva solo para esta funcion,pero el momento de abrirla me muestra el campo de texto y alert con lo que escribo en el campo de texto...pero este error aparece antes que todo...


PD: la tabla ciudades la cambie por comunas
  #15 (permalink)  
Antiguo 16/03/2011, 10:05
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: Rellenar campos de texto a partir de un select a la BD

Bueno intenta resolverlo vos mismo mirando el codigo,
para empezar cambia el nombre de las tablas que tienen nuevo nombre,

yo veo un solo error que hace q te tire el warning.

si no hay caso te lo digo, pero cuando es asi lo que yo doy como ayuda solo va a funcionar en tu programa
yo lo que te doy es la logica
  #16 (permalink)  
Antiguo 16/03/2011, 10:11
Avatar de avergaf  
Fecha de Ingreso: marzo-2011
Mensajes: 99
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Rellenar campos de texto a partir de un select a la BD

ok,muchas gracias,porque me has orientado bastante,ahora iré a comer algo y despues vuelvo a solucionar el asunto!! jeje
  #17 (permalink)  
Antiguo 17/03/2011, 06:53
Avatar de avergaf  
Fecha de Ingreso: marzo-2011
Mensajes: 99
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Rellenar campos de texto a partir de un select a la BD

aaaaa funcionó!!! le modifique unas cositas y anda a la perfección!!!!!! ahora lo pondré dentro del form original! muchisisisimas gracias!! :D

ahora mi consulta seria como agregarle mas variables,porque he intentado,pero solo me muestra una,si le pido el rut,pr ejemplo,me muestra solo el rut y me deja de mostrar el mail

Última edición por avergaf; 17/03/2011 a las 07:07
  #18 (permalink)  
Antiguo 17/03/2011, 07:49
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: Rellenar campos de texto a partir de un select a la BD

bueno creo que esta mas que claro.

por cada campo que necesites hace lo mismo:

Código PHP:

Ver originalCopiar

1.
$sql='select * from empresas
2.
inner join ciudades on
3.
empresas.ciu_cod=ciudades.ciu_cod';
4.
$res=mysql_query($sql);
5.
if(mysql_num_rows($res) > 0){
6.
while($row=mysql_fetch_object(res)){
7.
//VAMOS A EMPEZAR CON UN SOLO CAMPO, LUEGO VAS AGREGANDO LOS DEMAS
8.
?>
9.
<input type="hidden" name="HID_mail_<?php echo $row->emp_nom; ?>" id="HID_mail_<?php echo $row->emp_nom; ?>" value="<?php echo $row->emp_mail; ?>" />

<input type="hidden" name="HID_rut_<?php echo $row->emp_nom; ?>" id="HID_rut_<?php echo $row->emp_nom; ?>" value="<?php echo $row->emp_rut; ?>" />
10.

11.
<?php
12.
}
13.
}

Código Javascript:

Ver originalCopiar

1.
<script type="text/javascript">
2.
function valida(){
3.
var nombre = document.getElementById('nombre').value; //RECUPERO EL VALOR INGRESADO
4.
alert(nombre);
5.

6. //ACA ARMA TODAS LAS VARIABLES
var mail = document.getElementById('HID_mail_'+nombre).value; //ARMO EL ID DEL HIDDEN QUE TIENE EL MAIL CON EL VALOR INGRSADO
var rut = document.getElementById('HID_rut_'+nombre).value; //ARMO EL ID DEL HIDDEN QUE TIENE EL MAIL CON EL VALOR INGRSADO
7.
alert(mail+" "+rut); //muestro el email que CORRESPONDE AL NOMBRE INGRESADO , SI FUNCIONA ESTO SOMOS LOS REYES DEL CARNAVAL
8.

9. //mejora este if
if(mail != null || mail != '' || rut != null || rut != '' ){ //tiene que existir el div para que no de error
10.
//EN EL CONTENEDOR CREO UN INPUT EDITABLE CON EL MAIL QUE CORRESPONDE AL NOMBRE INGRESADO
11.
document.getElementById("contenedor").innerHTML = '<input type="text" name="mail" id="mail" value="'+mail+'" />';
document.getElementById("contenedor2").innerHTML = '<input type="text" name="rut" id="rut" value="'+rut+'" />';
12.
}else{
13.
alert('no hay resultados');
14.
return false;
15.
}
16.
}
17.
</script>



?>
Código HTML:

Ver originalCopiar

1.
<input type="text" name="nombre" id="nombre" value="" />
2.
<div id="contenedor" name="contenedor"></div>
<div id="contenedor" name="contenedor2"></div>
3.
<input type="button" name="boton" onclick="return valida();" />

Etiquetas: bd, campos, rellenar, 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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:18.