Anexsoft | Blog y dictado de cursos de Tecnología

En este encontrarás tutoriales de tecnología como PHP, ASP.NET MVC, Front-End, entre otros y cursos exigentes de modalidad online que te ayudarán a crecer profesionalmente.

Guardar multiples registros con PHP
Actualizado el 04 Abril, 2015 y leído 7,553 veces
Calificación: 8.00 / 10

Guardar multiples registros con PHP

Anexsoft

Muy bien muchachos, en la oficina me ha pasado que me han pedido que se pueda crear varios registros desde un solo formulario para poder agilizar la subida de información, ya que hacerlo de uno en uno tomaría más tiempo. Ejem: nuestro usuario requiere registrar a todo los empleados de la empresa ..

Entonces en este ejemplo vamos a crear 3 alumnos desde un mismo formulario usando nuestro amigo PHP. Vamos a maquetar nuestro formulario usando Bootstrap y vamos hacer un bucle for para hacer que nuestro formulario se repita 3 veces el cual estará dentro de las etiquteas <form>.

<form action="?c=Alumno&a=CrearMultiple" method="post" enctype="multipart/form-data">

<div class="row">
<?php $x = 1; for($x; $x <= 3; $x++): ?>
<div class="col-xs-4">
<div class="well well-sm">
<div class="form-group">
<label>Nombre</label>
<input type="text" name="Nombre[]" class="form-control" placeholder="Ingrese su nombre" data-validacion-tipo="requerido|min:3" />
</div>

<div class="form-group">
<label>Apellido</label>
<input type="text" name="Apellido[]" class="form-control" placeholder="Ingrese su apellido" data-validacion-tipo="requerido|min:10" />
</div>

<div class="form-group">
<label>Correo</label>
<input type="text" name="Correo[]" class="form-control" placeholder="Ingrese su correo electrónico" data-validacion-tipo="requerido|email" />
</div>

<div class="form-group">
<label>Sexo</label>
<select name="Sexo[]" class="form-control">
<option value="1">Masculino</option>
<option value="2">Femenino</option>
</select>
</div>

<div class="form-group">
<label>Fecha de nacimiento</label>
<input readonly type="text" name="FechaNacimiento[]" class="form-control datepicker" placeholder="Ingrese su fecha de nacimiento" data-validacion-tipo="requerido" />
</div>

<div class="row">
<div class="col-xs-6">
<div class="form-group">
<label>Foto</label>
<input type="file" name="Foto[]" placeholder="Ingrese una imagen" />
</div>
</div>
</div>
</div>
</div>
<?php endfor; ?>
</div>

<hr />

<div class="text-right">
<button class="btn btn-success btn-lg btn-block">Guardar</button>
</div>
</form>


Ahora a cada nombre de los controles html: input, select, file, checkbox, etc .. debemos decirle que son un Array, por lo tanto los nombres le agregamos corchetes

<select name="Sexo[]" class="form-control">


De esta manera cuando presionemos el boton del submit, enviará toda la información contenida en un Array, y en nuestro controlador realizará la lógica para guardar los registros.


Los parámetros enviados son pasados de la siguiente manera:

array(size=5)
'Nombre' =>
array(size=3)
0 => string 'Eduardo' (length=7)
1 => string 'Alberto' (length=7)
2 => string 'Alberto' (length=7)
'Apellido' =>
array(size=3)
0 => string 'Rodriguez Díaz' (length=15)
1 => string 'Rodriguez Patiño' (length=17)
2 => string 'Ibanez Fender' (length=13)
'Correo' =>
array(size=3)
0 => string 'asd@asd.net' (length=11)
1 => string 'abasd@asd.net' (length=13)
2 => string 'asd@asd.net' (length=11)
'Sexo' =>
array(size=3)
0 => string '1' (length=1)
1 => string '1' (length=1)
2 => string '1' (length=1)
'FechaNacimiento' =>
array(size=3)
0 => string '2015-04-01' (length=10)
1 => string '2015-04-02' (length=10)
2 => string '2015-04-16' (length=10)


Nuestro controlador Alumno hace lo siguiente, exactamente su acción CrearMultiple:

Image title

  • Lo que hacemos es un for indicandole que de 3 vueltas, en nuestro caso hacemos un COUNT para calcular cuantas vueltas debe dar.

  • Luego instanciamos nuestra clase Alumno y comenzamos a llenar los valores.

  • Para que entiendas, el índice ['Nombre'] contiene un array de 3 valores ya que hace referencia a los 3 nombres ingresados en nuestros 3 formularios, entonces en cada vuelta la variable $i de nuestro FOR guardará ese valor en la propiedad Nombre de la clase Alumno.

  • Luego hacemos el INSERT llamando a nuestro modelo Alumno

  • Y al final de todo hacemos un redirect a la vista principal de la web.


Para que puedan entender mejor este ejemplo denle una leída a esta entrada Crud avanzando con MVC para PHP, ya que este esta basado en la arquitectura MVC y lo explica en ese enlace.

El ejemplo ha sido realizado usando: jquery | jquery UI | bootstrap | MVC


Actualización: pueden ver el siguiente POST Insertar varios registros desde el mismo formulario con PHP y jQuery donde hacemos lo mismo pero agregandole funcionalidad mediante jQuery para agregar N registros desde el mismo formulario.

¡Adquiera ya!

  • Código de fuente de Red Social desarrollada en ASP.NET MVC

    Código de fuente de Red Social desarrollada en ASP.NET MVC
  • Software de Portafolio Profesional hecho en ASP.NET MVC 5 C#

    Software de Portafolio Profesional hecho en ASP.NET MVC 5 C#
  • Software de Venta e Inventario hecho en PHP y Codeigniter

    Software de Venta e Inventario hecho en PHP y Codeigniter

Últimas publicaciones

Encuesta

¿Sobre qué te gustaría que se hable más?

Síguenos

Estudia con nosotros y crece profesionalmente

Nuestros cursos han sido hecho en base a lo que demanda el mercado hoy en día.
La experiencia obtenida es la de un ambiente laboral.

Anexsoft
© 2018 Anexsoft, blog y cursos online de TI.