PHP - Obtener valores generados a traves de un Ciclo

   
Vista:

Obtener valores generados a traves de un Ciclo

Publicado por Gaby Silva (3 intervenciones) el 24/03/2017 18:20:19
hola a todos!!!
Tengo un problema, estoy desarrollando un pequeño sistema Web en el cual debo guardar la historia de vida de un niño, el punto es que debo guardar a todas las personas que viven con el, así que pregunto al usuario cuantas personas viven en la casa y por cada persona guardo 7 datos.
La situación es que tengo un input el cual pregunta el numero de personas y a traves de FOR genero los pequeños bloques de registro, pero luego no se como obtener cada registro para guardarlo en mi base de datos.
Les dejo mi codigo para que me sigan la idea

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
 
	require 'conexion.php';
	if(!empty($_POST))
	{
		$numero = mysqli_real_escape_string($mysqli,$_POST['numero']);
 
	}
 
?>
<html>
	<body>
            <form id="inicio" name="inicio" action="<?php $_SERVER['PHP_SELF']; ?>" method="POST" >
				<input id="numero" name="numero" type="text" placeholder="Cuantas personas viven en la casa">
			</form>
			<br><br><br>
		<?php
			@$numero=$numero-1;
			for($i=0; $i <=@$numero ; $i++) { ?>
				<form id="registro" name="registro" action="<?php $_SERVER['PHP_SELF']; ?>" method="POST" >
					<input name='1' type='text' placeholder='Nombre'>
					<input name='2' type='text' placeholder='Edad'>
					<input name='3' type='text' placeholder='Sexo'>
					<input name='4' type='text' placeholder='Estado civil'>
					<input name='5' type='text' placeholder='Escolaridad'>
					<input name='6' type='text' placeholder='Ocupación'>
					<input name='7' type='text' placeholder='Parentesco con la NNA'><br><br>
		<?php } ?>
				</form>
Si alguien me pudiera ayudar se los agradeceria muchisimo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip

Obtener valores generados a traves de un Ciclo

Publicado por kip (868 intervenciones) el 25/03/2017 04:19:20
Hola, he modificado tu codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
    require 'conexion.php';
    if(isset($_POST['personas']) && ! empty($_POST['numero'])) {
    	$numero = $_POST['numero'];
    }
    if (isset($_POST['guardar_datos'])) {
		echo '<b>---DATOS A GUADAR---</b><br>';
        foreach ($_POST['nombre'] as $num => $val) {
			$perso = $num + 1;
			echo '<br><b>PERSONA '.$perso.'</b><br>';
			echo '<b>NOMBRE: </b>'.$val.'<br>';
			echo '<b>EDAD: </b>'.$_POST['edad'][$num].'<br>';
			echo '<b>SEXO: </b>'.$_POST['sexo'][$num].'<br>';
			echo '<b>ESTADO CIVIL: </b>'.$_POST['estado'][$num].'<br><br>';
        }
    }
    ?>
<html>
    <body>
        <form id="inicio" name="inicio" action="#" method="POST" >
            <input id="numero" name="numero" type="text" placeholder="Cuantas personas viven en la casa">
            <input name="personas" type="submit" value="Continuar">
        </form>
        <br><br><br>
        <?php if (isset($numero) && ! isset($_POST['persona'])) { ?>
            <h2>Datos de personas que viven en las casa:</h2>
            <form id="registro" name="registro" action="#" method="POST" >
                <?php for ($i = 0; $i < $numero; $i++) { ?>
                    <hr>
                    <input name='nombre[]' type='text' placeholder='Nombre'>
                    <input name='edad[]' type='text' placeholder='Edad'>
                    <input name='sexo[]' type='text' placeholder='Sexo'>
                    <input name='estado[]' type='text' placeholder='Estado civil'>
                    <input name='escola[]' type='text' placeholder='Escolaridad'>
                    <input name='ocupa[]' type='text' placeholder='Ocupación'>
                    <input name='parente[]' type='text' placeholder='Parentesco con la NNA'>
                <?php } ?>
				<br><br>
            <input name="guardar_datos" type="submit" value="Guardar datos">
        <?php } ?>
        </form>

Prueba y deberia mostrarte los datos de las personas cuando hagas click en GUARDAR DATOS, es este bloque el que hace ese trabajo:

1
2
3
4
5
6
7
8
9
10
11
if (isset($_POST['guardar_datos'])) {
		echo '<b>---DATOS A GUADAR---</b><br>';
        foreach ($_POST['nombre'] as $num => $val) {
			$perso = $num + 1;
			echo '<br><b>PERSONA '.$perso.'</b><br>';
			echo '<b>NOMBRE: </b>'.$val.'<br>';
			echo '<b>EDAD: </b>'.$_POST['edad'][$num].'<br>';
			echo '<b>SEXO: </b>'.$_POST['sexo'][$num].'<br>';
			echo '<b>ESTADO CIVIL: </b>'.$_POST['estado'][$num].'<br><br>';
        }
    }

Para poder guardar en la base de datos debes modificar aquel bloque dentro del foreach ya sea para armar la query y luego de este guardar los datos o para ejecutar en cada iteracion un INSERT a la base de datos con los datos.

Ten en cuenta que yo no he mostrado todos los datos enviados, debes acceder a ellos con el nombre $_POST['parente']... etc

Intentalo y nos cuentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Obtener valores generados a traves de un Ciclo

Publicado por Gaby Silva (3 intervenciones) el 27/03/2017 21:03:32
Muchisimas gracias Kip, me sirvio mucho tu ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad