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

rellenar varios campos al vuelo

Estas en el tema de rellenar varios campos al vuelo en el foro de Frameworks JS en Foros del Web. Saludos! Tengo un formulario, con 6 campos, donde, el primero es apellido. Este, lo estoy leyendo con el autocompletar de: http://www.formatoweb.com.ar/ajax/ , lo modifiqué, cuando ...
  #1 (permalink)  
Antiguo 13/05/2008, 10:21
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
rellenar varios campos al vuelo

Saludos!

Tengo un formulario, con 6 campos, donde, el primero es apellido. Este, lo estoy leyendo con el autocompletar de: http://www.formatoweb.com.ar/ajax/ , lo modifiqué, cuando se selecciona el apellido, obtengo inmediatamente el nombre...

Código:
function rellenaCampos()
{
   var nuevoValor=inputLista.value;

   buscar=nuevoValor;

   var ajax=nuevoAjax();
   ajax.open("POST", "includes/autocompletado.php?", true);
   ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   ajax.send("buscar="+nuevoValor);

   ajax.onreadystatechange=function()
   {
      if (ajax.readyState==4) {
         document.getElementById('ajax_nombre').innerHTML=ajax.responseText;
      }
   }
}
y que apunta a:

Código:
<tr>
      <td class="td">Nombre (s)</td>
      <td class="td" id="ajax_nombre"><input type="text" name="nombre" id="nombre" size="20" readonly="true"></td>
    </tr>
¿Cómo puedo rellenar todos los campos de un sólo "jalón"?

Gracias de una
__________________
Gracias de todas todas
-----
Linux!
  #2 (permalink)  
Antiguo 13/05/2008, 10:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: rellenar varios campos al vuelo

Lo que puedes hacer es regresar así tu respuesta:
Código:
campo1||campo2||campo3||campo4
Luego a la hora de comprobar la respuesta:
Código:
ajax.onreadystatechange=function()
   {
      if (ajax.readyState==4) {
         var campos = ajax.responseText.split( "||" );
         document.getElementById('ajax_nombre').innerHTML=campos[0];
         document.getElementById('ajax_telefono').innerHTML=campos[1];
         // etc.
      }
   }
Saludos.
  #3 (permalink)  
Antiguo 13/05/2008, 13:21
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: rellenar varios campos al vuelo

Gracias!

No soy muy ducho con ajax, así que tengo que tratar de entender...

La manera en que obtengo los datos y regreso:
Código:
if(isset($_POST["buscar"]))
{
$nuevoValor=$_POST["buscar"];
   
   // crear la instancia y conectar a la BD
   $conec = new corpo_db();
   $conec->corpo_dbConec();
   
   $consulta = "SELECT nombre, cedula, cargo, dependencia, sueldo FROM $sc5.$tFunc WHERE apellido = '".$nuevoValor."'";
   $datos = $conec->corpo_dbC($consulta);

   // cierro conexion a la base de datos
   $conec->corpo_dbDConec();

   $registro = $conec->corpo_dbFR($rs_datos);
   
   echo "<input type=\"text\" name=\"nombre\" id=\"nombre\" value=\"".$registro[0]."\" readonly>";
}
Como ves, la manera en que regreso, es con un echo con todo el input, por lo que no entiendo cómo es el regresar que me cuentas...
__________________
Gracias de todas todas
-----
Linux!
  #4 (permalink)  
Antiguo 13/05/2008, 13:27
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: rellenar varios campos al vuelo

Otra...
Cita:
Iniciado por GatorV Ver Mensaje
Lo que puedes hacer es regresar así tu respuesta:
Código:
campo1||campo2||campo3||campo4
estás concatenando? eso funciona en php?
__________________
Gracias de todas todas
-----
Linux!
  #5 (permalink)  
Antiguo 13/05/2008, 14:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: rellenar varios campos al vuelo

Claro, inclusive puedes hacerlo así:
Código PHP:
if(isset($_POST["buscar"]))
{
$nuevoValor=$_POST["buscar"];
   
   
// crear la instancia y conectar a la BD
   
$conec = new corpo_db();
   
$conec->corpo_dbConec();
   
   
$consulta "SELECT nombre, cedula, cargo, dependencia, sueldo FROM $sc5.$tFunc WHERE apellido = '".$nuevoValor."'";
   
$datos $conec->corpo_dbC($consulta);

   
// cierro conexion a la base de datos
   
$conec->corpo_dbDConec();

   
$registro $conec->corpo_dbFR($rs_datos);
   
   echo 
implode"||"$registro );

Luego en Javascript haces el split (para separar) y luego pones el valor en cada campo donde lo necesitas.

Saludos.
  #6 (permalink)  
Antiguo 13/05/2008, 14:28
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Re: rellenar varios campos al vuelo

Vale! es mucho más simple de lo que creía...

Gracias!
__________________
Gracias de todas todas
-----
Linux!
  #7 (permalink)  
Antiguo 30/05/2008, 10:08
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Respuesta: rellenar varios campos al vuelo

Eh? vuelto?

Una dudilla... Los resultados los estoy mostrando en un formulario html en unas etiquetas span... ahora bien, sí detrás, necesito utilizar esos valores para operaciones matemáticas?

Dicho, ¿puedo tener dos etiquetas recibiendo el mismo valor? uno muestro y el otro lo manipulo?
__________________
Gracias de todas todas
-----
Linux!
  #8 (permalink)  
Antiguo 30/05/2008, 11:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: rellenar varios campos al vuelo

Hola cacr,

Tienes dos opciones, una es usar document.getElementById para leer el contenido del SPAN, y otra es como dices, primero asignar la variable que te llega a una variable en JS y después esa variable insertarla en el SPAN.

Saludos.
  #9 (permalink)  
Antiguo 30/05/2008, 13:01
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
Respuesta: rellenar varios campos al vuelo

Vale... gracias!
__________________
Gracias de todas todas
-----
Linux!
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 14:31.