Foros del Web » Programando para Internet » PHP »

Autocompletar Form desde Select

Estas en el tema de Autocompletar Form desde Select en el foro de PHP en Foros del Web. Buenas a Todos Escribo despúes de buscar info y no hayar la respuesta adecuada. Lo que deseo es poder llenar los campos de un formulario ...
  #1 (permalink)  
Antiguo 10/08/2011, 14:29
Avatar de roby77  
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 0
De acuerdo Autocompletar Form desde Select

Buenas a Todos

Escribo despúes de buscar info y no hayar la respuesta adecuada. Lo que deseo es poder llenar los campos de un formulario automáticamente según la opción que haya escogido. Por ejemplo tengo un select (combobox) con nombres de empresas y deseo que al escoger una mediante el select se llenen los campos en blanco que tengo mas abajo como teléfono, dirección, nombre de la empresa (el mismo valor del select), email, etc.

Estos datos están almacenados en una tabla de la base de datos en la cuál se consultarían los datos dependiendo de la empresa seleccionada. Mi idea es tener en primera instancia el select para escoger la empresa y guardar este resultado en una variable php ($empresa) para poder ejecutar la consulta (no sabría como hacerlo), segundo realizar la consulta con el select escogido y tercero hacer el "echo" o "print" de los datos traidos de la consulta realizada.

********************************

acá está mi select:

<!-- Select de las empresas -->

<tr valign="top" height="20">
<td valign="middle"" align="right"><b> Empresa: </b></td>
<td>
<select name="empresa" id="empresa">
<?php
// Consulto las empresas del sistema
$querydrop1b = "select * from empresas";

$resultdrop1b = MYSQL_QUERY($querydrop1b);

$numberdropb = mysql_Numrows($resultdrop1b);

if ($numberdropb>0)
{
$xdropi=0;

while ($xdropi<$numberdropb)
{
$codigoEmpresa = mysql_result($resultdrop1b,$xdropi,"id");
$empresa = mysql_result($resultdrop1b,$xdropi,"empresa");
$email = mysql_result($resultdrop1b,$xdropi,"email");
$telefono = mysql_result($resultdrop1b,$xdropi,"phone");
etc...etc...etc...

echo "<option value=\"$codigoEmpresa\">$empresa</option>";

$xdropi++;
} // end while
} // end if
?>
</select>
</td>

<!-- Fin del select de las empresas -->

*******************************************

acá está el form sin la cabecera (name, method="POST" y action):

<tr valign="top" height="20">
<td align="right"> <b> Nombre : </b> </td>
<td> <input name="thisNombreField" type="text" value="<? print $nombreempresa ?>" size="50" readonly="readonly"> </td>
</tr>
<tr valign="top" height="20">
<td align="right"> <b> Direcci&oacute;n : </b> </td>
<td> <textarea name="thisDireccionField" cols="50" rows="3" readonly="readonly"><? print $direccionempresa ?> </textarea></td>
</tr>
<tr valign="top" height="20">
<td align="right"> <b> Tel&eacute;fono : </b> </td>
<td> <input name="thisTelefonoField" type="text" value="<? print $telefonoempresa ?>" size="20" readonly="readonly"> </td>
</tr>
<tr valign="top" height="20">
<td align="right"><strong>E-Mail: </strong></td>
<td><input name="thisEmailField" type="text" value="<? print $email ?>" size="50" readonly="readonly"/></td>
</tr>
<tr valign="top" height="20">
<td align="right"><b> NIT: </b></td>
<td>
<input name="thisNitField" id="thisNitField" type="text" value="<? print $nitempresa ?>" size="20" readonly="readonly">
<?php if($nit_verv != ""){?>
- <input name="thisNit_ver" type="text" readonly="readonly" id="thisNit_ver" value="<? echo $nitver1; ?>" size="3" maxlength="50" <? if ($touchscreen == "Si"){
echo "class=keyboardInput";
} else {} ?> />
<?php }?>
</td>
</tr>
<tr valign="top" height="20">
<td align="right"><b> Número de pedido: </b></td>
<td>
<input name="thisOrdenDeCompraField" id="thisOrdenDeCompraField" onchange="veriOrden(this.form.thisOrdenDeCompraFie ld.value, this.form.thisNitField.value, this.form.button)" type="text" value="" size="50" >
<div id="ordenDeCompra" class="ordenDeCompra"></div>
</td>
</tr>

*******************************************

Espero haberme hecho entender y también que puedan ayudarme con esta duda.

Gracias!!!
  #2 (permalink)  
Antiguo 10/08/2011, 14:51
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Autocompletar Form desde Select

Buenas,

El problema de tu código es de concepto. Tú piensas que el usuario elije la empresa y luego se ejecuta tu código y se le asigna el valor a las variables. Eso es imposible, ya que PHP es un lenguaje que se ejecuta en el servidor, no en el cliente. Es decir, para que se ejecute el código el usuario tiene que hacer una petición (por ejemplo, pulsando submit).

Tienes que poner el primer select en un form que tenga action a la misma página en la que estás y método POST. El otro formulario puede ser cómo quieras. Cuando el usuario elija el primer select y pusle enviar, se enviará el primer formulario y tendrás que tratar los datos (que te vendrán en la variable $_POST). Sería algo así:
pagina.php:
Código PHP:
Ver original
  1. <form action="pagina.php" method="POST">
  2.    // Aquí el código del select que tienes
  3.    <input type="submit">
  4. </form>
  5. <?php
  6. if (isset($_POST['empresa'])) {
  7.    // Hacer consulta a la base de datos y extraer los datos de la empresa.
  8. }
  9. ?>
  10. <form ...> // El segundo form tal y como lo tienes.
  11.    // Aquí mostrar los campos con el atributo value.
  12. </form>

Espero haberte aclarado las dudas, sobre todo de concepto. Es más importante conocer la dinámica de cómo funciona esto.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #3 (permalink)  
Antiguo 10/08/2011, 15:46
Avatar de roby77  
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Autocompletar Form desde Select

Gracias por tu respuesta vgonga 1986.

Ese es precisamente el problema. como se ejecuta del lado del servidor hay que utilizar ayudas como ajax, javascript o iframe que vuelven a realizar una llamada al servidor.

Parece que no quedó claro, pero lo que busco es hacer todo eso en la misma página, ya que con el "action" envío los datos a un script que los recoge y procesa el documento para luego imprimirlo.

Lo que deseo es que el usuario pueda ver los datos que van a ser procesados según el select que haya escogido y esto necesariamente debe hacerse en la misma página.

acabo de encontrar alguna información de ajax y iframe......a ver si me funciona.
  #4 (permalink)  
Antiguo 10/08/2011, 22:50
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Autocompletar Form desde Select

Eso solo se puede hacer mezclando javascript, php y mysql. Cuando se genera un cambio en el formulario (una acción Onchange) se le debe pedir que los values de los otros campos del formulario tomen el valor de la consulta segun la primera opcion que se haya escogido.

Con este excelente tutorial se puede lograr esto. Si no sabes javascript pues toca estudiarlo un poco para entender lo que hace la función, pero no es extremadamente dificil.

http://www.tallerwebmaster.com/tutor...-enlazadas/77/
  #5 (permalink)  
Antiguo 11/08/2011, 01:17
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Autocompletar Form desde Select

Me reitero en el comentario anterior.

Esto se puede hacer con PHP únicamente y quedaría todo en la misma página (si lo pones para que así sea). La diferencia es que con AJAX puedes hacerlo sin que el usuario pulse submit del primer formulario (es decir, recargue la página).

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #6 (permalink)  
Antiguo 11/08/2011, 07:51
Avatar de roby77  
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Autocompletar Form desde Select

Gracias cuasatar y vgonga 1986.

Voy a leer el tuto a ver si logro implementar la funcionalidad, y si se algo de javascript a ver como me va con el evento onChange

vgonga 1986 te pediría el favor de darme una ayudita de como implementar el ajax para el refresco de datos según la empresa escogida. Si se refresca la página o no es de poca o ninguna importancia, lo verdaderamente importánte es que el cliente no haga nada, es decir no hayan cosas como el "submit", si no solo interactue con el select (combobox) y de ahí se carguen los demás datos.

Nuevamente doy gracias por sus aportes.
  #7 (permalink)  
Antiguo 11/08/2011, 08:36
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Autocompletar Form desde Select

Te paso este post, que es muy similar a lo que tú pides. Lo único que tendrías que cambiar el tratamiento de los datos a POST, en vez de usar GET. Ahí está explicado cómo hacer que el usuario no tenga que usar submit, sino que al cambiar la opción del select se envíe sólo.

Añado: ese post que te he pasado no usa AJAX para nada, es simple PHP, sólo que los envíos del form son invisibles para el usuario. La página se recargará, pero si dices que te da igual, impleméntalo con eso.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #8 (permalink)  
Antiguo 11/08/2011, 13:00
Avatar de roby77  
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Autocompletar Form desde Select

Gracias por vuestras respuestas.

vgonga 1986 te comento que aunque aclaré ciertas cosillas, no es lo que estoy buscando ya que el "submit" lo empleo para otra cosa---"<input id="button" name="button" type="button" onClick="Validar(this.form)" value="Continuar" disabled>--- que se activa hasta que realice cierta validación.


Lo único que quiero es que según se escoga una empresa u otra del select (combobox) se actualicen automaticamente los datos de esta en la pantalla que está observando el usuario.

Como lo que tengo en mente es recoger todos esos datos de una consulta de la base de datos, lo que (es una idea) tendría que hacer el onCahnge es realizar dicha consulta con la empresa que recojo del select y luego refrescar la página para que pueda hacer un "echo" de esas variables como por ejemplo:

<tr valign="top" height="20"> <td align="right"> <b> Direcci&oacute;n : </b> </td> <td> <textarea name="thisDireccionField" cols="50" rows="3" readonly="readonly"> <? echo $direccionempresa ?> </textarea></td></tr>

<tr valign="top" height="20"> <td align="right"> <b> Direcci&oacute;n : </b> </td> <td> <textarea name="thisDireccionField" cols="50" rows="3" readonly="readonly"> <? echo $nitempresa ?> </textarea></td></tr>

Todo esto sin el envío del formulario (submit) ya que será posible cambiar de empresa tantas veces como se desee y luego de estar conforme a los datos mostrados en pantalla, ahora si picar con el mouse en Continuar (que es mi botón del submit)

Entonces en el onChange pongo una función que recoja el select y me haga la consulta para poder imprimir las variables por pantalla, o realizo el ajax para hacer esto que quiero?????? (y como hacerlo......claro...je je )

Quedo atento a cualquier sugerencia.
  #9 (permalink)  
Antiguo 12/08/2011, 01:30
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Autocompletar Form desde Select

Sigues emperrado en lo mismo y yo ya no sé cómo explicarte las cosas. Me estoy empezando a desesperar, porque te cierra a lo que crees que sabes y no quieres aprender.

Te he dicho en este post y también está dicho en el post que te pasé. Que no se puede hacer únicamente con PHP sin enviar el formulario. Pero también te he dicho que no hay problema, que pongas dos formularios. Uno únicamente con el select y que en el onchage hagas submit() del form desde JavaScript y otro con los demás datos.

Quieres que te lo haga yo el código? Te lo hago, me la pela, pero no vas a aprender. Tardo 5 minutos en dártelo, tanto con PHP únicamente como con AJAX, porque lo tengo esto en mil sitios y tardo 5 minutos en adaptarlo a tu problema. Hay post que se alargan tanto y amargan tanto que al final es preferible dar el código y que la persona ni piense, así por lo menos te ahorras explicar lo mismo varias veces.

En fin, si quieres que te dé el código te lo doy, porque el fin de semana no me voy a conectar. Es cosa tuya si quieres o no aprender a hacerlo.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #10 (permalink)  
Antiguo 12/08/2011, 10:20
Avatar de roby77  
Fecha de Ingreso: marzo-2011
Mensajes: 10
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Autocompletar Form desde Select

Gracias vgonga 1986 por tu interés en que aprenda.

Según lo que me dices (espero entenderte) no se puede hacer sin enviar el formulario (solo PHP). Es por eso que por lo que he visto toca necesariamente usar javascript o ajax.

También había pensado en utilizar 2 formularios, exactamente iguales (de vista mas no de nombre) y ya que en el segundo podría recoger el select (combobox) con $empresa = $_POST['empresa']; podría hacer un sencillo "echo" sin ningún problema. La forma de llegar al 2 formulario sería colocandolo en el onChange del primer formulario.

Estuve revisando en este [URL="http://www.desarrolloweb.com/articulos/ejemplos/ajax/xajax/checkbox_si_no.php"]ejemplo[/URL] algo similar a lo que necesito implementar con el uso de xajax que cambia los valores mostrados en pantalla automáticamente según la opción que el usuario escoja (tendría que cambiar el checkbox por un combobox).

y si...me suena conectarme este fin de semana para que me heches una manito con mi mar de dudas.

Gracias nuevamente.


Etiquetas: formulario
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 12:22.