PHP - Generar objetos dinamicamente

   
Vista:

Generar objetos dinamicamente

Publicado por David (38 intervenciones) el 09/09/2014 18:57:14
Buen dia,

Tengo el siguiente planteamiento, realizo una consulta a una BD, esta trae mis datos personales y mi numero de hijos con los respectivos datos, puedo mostrar mis datos basicos en cajas de textos pero tengo el problema con el # de hijos, quiero generar cajas de texto partiendo de los datos de la BD, es decir, si tengo 3 hijos el codigo me genere 3 cajas de textos, si son 5 me genere 5 cajas de texto.

Muchas gracias por su valiosa ayuda.

Saludos
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

Generar objetos dinamicamente

Publicado por Gonzalo (338 intervenciones) el 09/09/2014 19:44:12
aqui depende de como tienes registrados a los hijos

si los hijos estan registrados en la misma tabla donde estan tus datos entonces tienes un campo por cada hijo, aqui el tratamiento seria diferente.

asi que supongo que estan en una tabla aparte de tus datos ligados por alguna clave, de aqui resultan 0 hijos o 10 hijos, no lo se, si este es el caso entonces podrias hacer esto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$SqlCommand="select NombreHijo from Tabla where id=numero order by NombreHijo";
$Query=$this->MySql->query($SqlCommand);
 
if($Query->num_rows>0)
{
echo('<table>');
$i=0;
while($Rs=$Query->fetch_array(MYSQL_ASSOC))
{
echo('<tr><td>');
echo('<input type="text" name="TexNombreHijo'.$1.'" value="'.$Rs["NombreHijo"].'">');
echo('</td></tr>');
$i++;
}
echo('</table>');
 
}

hasta aqui los muestras, cada quien con un id diferente TexNombreHijo1, TexNombreHijo2, etc.

ahora lo recuperas en el post

1
2
3
4
5
6
7
8
9
$i=0;
foreach($_POST as $Objeto=>$Valor)
{
if(substr($objeto,0,13)=="TexNombreHijo")
{
$NombreHijo[$i]=$Valor;
$i++;
}
}

los nombres quedan en un array.

es solo una idea, espero sea de ayuda, suerte, salu2.
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