Foros del Web » Programando para Internet » PHP »

Recoger arrays de campos dinámicos de un formulario

Estas en el tema de Recoger arrays de campos dinámicos de un formulario en el foro de PHP en Foros del Web. Tengo una bd en la que hay 2 tablas Usuarios id,nombre, ape1, ape2, fechanac Direccion idusu, calle, codigopostal, provincia Cada usuario puede tener varias direcciones, ...
  #1 (permalink)  
Antiguo 13/11/2010, 08:13
 
Fecha de Ingreso: julio-2009
Mensajes: 103
Antigüedad: 14 años, 9 meses
Puntos: 1
Recoger arrays de campos dinámicos de un formulario

Tengo una bd en la que hay 2 tablas
Usuarios
id,nombre, ape1, ape2, fechanac
Direccion
idusu, calle, codigopostal, provincia

Cada usuario puede tener varias direcciones, por eso en el formulario
añado un botón para añadir nuevos campos (calle, codigopostal y pronvincia)

La cosa es al enviar formualrio a "insertar_usuario.php" no se como recojer de alguna forma los datos de todos los input creados y insertarlos en mi base de datos. He estado probando pero se me ha cruzado y estoy echo un lío :S

Os dejo el trozo de formulario:
Código:
<tr><td colspan="2">Direcci&oacute;n:</td></tr>
<tr><td valign="top"><span style="color: gray; font-size:10px;">Calle: </span><span style="color: red; font-size:10px;">*</span></td><td ><input type="text" name="calle[]"/></td></tr>
<tr><td valign="top"><span style="color: gray; font-size:10px;">C&oacute;digo Postal:</span></td><td><input type="text" name="codigopostal[]"/></td></tr>
<tr><td valign="top"><span style="color: gray; font-size:10px;">Provincia:</span></td><td id="fieldirec"><input type="text" name="provincia[]"/><a title="Agregar otra direccion" onclick="creardirec(this)"><img align="middle" src="images/add.png"></a></td></tr>
  #2 (permalink)  
Antiguo 13/11/2010, 08:32
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Información Respuesta: Recoje

Hola,

si asignas al atributo name de los input del formulario el nombre campo_x[numero] cuando hagas submit tu script recibirá un array que luego puedes recorrer para insertar tantas filas como elementos poseas en el array. Ejemplo:

tu form (faltan cosas para abreviar e ir al grano...)
Código PHP:
<form>
<
input name="direccion[0]" />
<
input name="direccion[1]" />
<
input name="direccion[2]" />
etc....
</
form
tu script
Código PHP:
$direcciones $_REQUEST['direccion'];
foreach(
$direcciones as $direccion)
{
    echo 
$direccion;

Saludos!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #3 (permalink)  
Antiguo 13/11/2010, 09:00
 
Fecha de Ingreso: julio-2009
Mensajes: 103
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Recoje

Sí, eso es lo que pensé, pero que pasa si tengo 3 arrays (Calle, codigopostal y provincia) tendría que hacer 3 foreach no? y aparte quiero que cada uno de esos 3 campos se inserten en la misma fila de la tabla mysql, es decir si pone 2 direcciones:

Mi casa, 1 / 21345 / Madrid
Mi casa, 2 /12345 / Málaga

La idea es cogerlos y meterlos en la misma fila cada "agrupación", no se si me explico. Yo en este caso tengo que tener en cuenta que no se el número previo de direcciones que ese usuario va a meter, pues se añaden dinámicamente como fuera necesario
  #4 (permalink)  
Antiguo 09/03/2017, 02:19
 
Fecha de Ingreso: febrero-2008
Mensajes: 115
Antigüedad: 16 años, 2 meses
Puntos: 4
Respuesta: Recoger arrays de campos dinámicos de un formulario

Yo estoy teniendo el mismo problema. ¿Me puede alguien orientar en el tema?

Gracias
  #5 (permalink)  
Antiguo 09/03/2017, 03:27
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Recoger arrays de campos dinámicos de un formulario

Hola estrella_de_Galicia,

Estás reabriendo un tema de hace casi 7 años, eso no está bien visto, es mejor que abras uno propio y en todo caso, hagas referencia al original.

No obstante, como pista, está mal planteado porque si va a haber varias direcciones, para que la base de datos cumpla con la normalización, se debe crear una tabla para las direcciones relacionada con la de usuarios.

Por lo demás, las respuestas aportadas están correctas, se crea un array (no es necesario agregarle los números) y cuando se recibe, se recorre mediante un foreach y se insertan los datos en la tabla.

Etiquetas: arrays, campos, recoger, 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 06:59.