Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   cantidad de campos (http://www.forosdelweb.com/f18/cantidad-campos-550434/)

mmunarriz 22/01/2008 10:27

cantidad de campos
 
Hola, solicito sugerencias para resolver lo siguiente. Estoy haciendo un sitio en PHP y la DB es MySQL. Resulta que en el formulario de datos personales tengo un INPUT para ingreso de "Cantidad de menores".
Lo que necesito hacer a partir de alli es que se pueda ingresar las edad de cada uno de los menores y guardarlo en la BD.
POr lo que no se como manejar ese dinamismo, es decir tendre que presentar tantos INPUTS para igreso de edades según la cantidad de menores declarada previamente. Y luego en la BD tendre que tener X cantidad de campos para insertar las edades de cada uno.

Por ejemplo:
Si en "Cantidad de menores" ingreso "4"
Luego deberé mostrar "4" INPUTS para poner las edades de cada uno.
Debo hacer coincidir la cantiad de INPUTS con el numero de menores que hayan ingresado.
Lo mismo que tendré que guardar las "4" edades en la BD

Espero se entienda lo que busco! Gracias de antemano.

ferbux 22/01/2008 10:37

Re: cantidad de campos
 
Hola mmunarriz, lo ke puedes hacer es pedir los datos personales de cada nino pedir la fecha de nacimiento y en base a eso calcular la edad.

rogertm 22/01/2008 11:18

Re: cantidad de campos
 
hola mmunarriz, primero bienvenido a FDW, en cuanto a lo de la cantidad de formularios, realmente no se, pero no creo que sea dificil, me imagino que con un bucle while o foreach pasandole como variable la cantidad de forms que necesitas ya resuelves.
en cuanto a los hijos en la base de datos, es tan sencillo como la clasica base de datos padres e hijos (es justo lo que necesitas), haces una tabla hijos y la relacionas con la tabla de padres, asi mas o menos:

tabla padres
------------------------
padre_ID
padreNombre

tabla hijos
------------------------
hijo_ID
hijoNombre
hijoPadreID


el campo hijoPadreID de la tabla hijos, lo relacionas con el campo padre_ID de la tabla padres, una relacion de uno (padre) a varios (hijos), asi, ya despues por consulta resuelves los hijos que tiene cada padre.
espero resuelvas y entiendas lo que te pongo, de todas formas, si tienes dudas, gritassssssSs

saludos y suerte

rogertm 22/01/2008 11:59

Re: cantidad de campos
 
hola otra vez, estuve intentando hacer un script para lo que quieres, pero no me sale bien, de todos modos aqui dejo el codigo a ver si a otra persona lo puede arreglar:
pagina form.php
Código HTML:

<form action="hijos.php" method="POST" name="formulario">
    cantidad de campos<br>
    <input type="text" name="campos">
    <input type="submit" name="enviar" value="enviar">
</form>

pagina hijos.php
Código PHP:

<?php
if(isset($_POST['enviar']) && $_POST['enviar'] == 'enviar'){
    
$campos $_POST['campos'];
    
$i 1;
    
$field "<input type='text' name='edad'><br>";
    
    echo 
"<form name='hijos'>";
    
    while (
$i <= $campos){
        print 
$field++;
    }
    
    echo 
"</form>";
}
?>

el problema es que no para el ciclo, me he fijado en el ejemplo de php.net, pero nada

saludos y suerte, a ver si se puede arreglar

mmunarriz 22/01/2008 13:08

Re: cantidad de campos
 
Hola rogertm, agradezco por tu tiempo. Toque apenas tu codigo y ya funciona!
Código PHP:

<?php
if(isset($_POST['enviar']) && $_POST['enviar'] == 'enviar'){
    
$campos $_POST['campos'];
    
$i 1;
    
$field "<input type='text' name='edad'><br>";
    
    echo 
"<form name='hijos'>";
    
    while (
$i <= $campos){
        print 
$field;
        
$i++;
    }

    
    echo 
"</form>";
}
?>

Gracias nuevamente,
Un Saludo!

rogertm 22/01/2008 13:13

Re: cantidad de campos
 
valla que bueno, si un dia me hace falta ya se donde lo tengo, jejejeje :borracho:

rogertm 25/01/2008 08:02

Re: cantidad de campos
 
hola otra vez, retomo el tema por que he encontrado una forma mas sencilla y ligera para hacer esto con la funcion str_repeat, es sabido que los bucles consumen mucho en el server y es bueno no saturarlos, mira esto:
Código PHP:

<?php
if(isset($_POST['enviar']) && $_POST['enviar'] == 'enviar'){
    
$campos $_POST['campos'];
    echo 
"<form name='hijos'>";
    echo 
str_repeat("<input type='text' name='edad'><br>"$campos);    
    echo 
"</form>";
}
?>

ya lo dijo quien lo dijo, hay que leer el manual.

saludetes

quinqui 06/03/2008 08:34

Re: cantidad de campos
 
Uh, no conocía str_repeat()! La investigaré, sobretodo cuando dices que reemplaza a los bucles :P Gracias!

SirZoX 06/03/2008 13:43

Re: cantidad de campos
 
fantastico lo el str_repeat, pero a mi me asalta una duda...

str_repeat, por lo que veo, devolveria algo tal que asi

<input type='text' name='edad'>

<input type='text' name='edad'>

<input type='text' name='edad'>

<input type='text' name='edad'>

....

y ahora... como hago yo si despues solo quiero utilizar los 3 primeros valores de 'edad', o como accedo concretamente al tercer valor de 'edad'?

porque en php ahora existe una variable llamada $edad claro, pero automaticamente se genera como un array que pueda acceder desde $edad[3] por ejemplo?

quinqui 06/03/2008 14:06

Re: cantidad de campos
 
Pruébalo pues. Envía el formulario y dale a imprimir los valores que recibiste por el POST. Si $_POST["edad"] es arreglo te debería imprimir "Array()", de lo contrario un valor vacío o lleno.
Si es array, entonces puedes manejarlo como has dicho.
Código PHP:

<?
// Recibiendo los valores
$edad $_POST["edad"];

print 
$edad;

// Si edad es Array, entonces:
$tercer_valor $edad[2];
?>

Por cierto no olvides que los arrays comienzan en cero, no en 1.

SirZoX 10/03/2008 06:51

Re: cantidad de campos
 
pues no, de ninguna manera, ni con str_repeat ni nada, de hecho usando esta funcion ni siquiera consigo que repita nada ni una sola vez...

arf, estoy agobiado con esto, como leches hacen las aplicaciones web para funcionar en intranet las grandes empresas? XD

SirZoX 10/03/2008 06:52

Re: cantidad de campos
 
ostia tremendo... no funcionaba pq no pona "echo" delante del str_repeat

q burro por dios !


La zona horaria es GMT -6. Ahora son las 03:30.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.