Ver Mensaje Individual
  #22 (permalink)  
Antiguo 02/10/2010, 10:27
Avatar de egepe
egepe
 
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 14 años, 11 meses
Puntos: 7
Respuesta: campos dinamicos

El ejemplo que te coloco es para pedir

Cedula de identidad
Apellido1
Apellido2
Nombre1
Nombre2

------El codigo html ---------------------------------------------------------------------
<?php
// Campos dinamicos
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- <script type="text/javascript" src="personas.js"></script> -->
<script>
// JavaScript Document
Ninvol=0;

function involucrados(obj) {
Ninvol++;

fi = document.getElementById('fiel');
contenedor = document.createElement('div');
contenedor.id = 'div'+Ninvol;
fi.appendChild(contenedor);

cedula = document.createElement('input');
cedula.setAttribute("name", "cedula" + Ninvol);
cedula.setAttribute("size", "9");
cedula.setAttribute("maxlength", "8");
contenedor.appendChild(cedula);
//
ape1 = document.createElement('input');
ape1.type = 'text';
ape1.setAttribute("name", "ape1" + Ninvol);
ape1.setAttribute("size", "20");
ape1.setAttribute("maxlength", "20");
contenedor.appendChild(ape1);
//
ape2 = document.createElement('input');
ape2.type = 'text';
ape2.setAttribute("name", "ape2" + Ninvol);
ape2.setAttribute("size", "20");
ape2.setAttribute("maxlength", "20");
contenedor.appendChild(ape2);
//
nom1 = document.createElement('input');
nom1.type = 'text';
nom1.setAttribute("name", "nom1" + Ninvol);
nom1.setAttribute("size", "15");
nom1.setAttribute("maxlength", "20");
contenedor.appendChild(nom1);
//
nom2 = document.createElement('input');
nom2.type = 'text';
//ape1.name = 'text'+Ninvol;
nom2.setAttribute("name", "nom2" + Ninvol);
nom2.setAttribute("size", "15");
nom2.setAttribute("maxlength", "20");
contenedor.appendChild(nom2);
//

N_in = document.createElement('input');
N_in.type = 'hidden';
//ape1.name = 'text'+Ninvol;
N_in.setAttribute("name", "N_in");
N_in.setAttribute("value", Ninvol);
N_in.setAttribute("size", "3");
N_in.setAttribute("maxlength", "3");
contenedor.appendChild(N_in);
//
L_in = document.createElement('input');
L_in.type = 'hidden';
//ape1.name = 'text'+Ninvol;
L_in.setAttribute("name", "L_in");
L_in.setAttribute("value", true);
L_in.setAttribute("size", "3");
L_in.setAttribute("maxlength", "3");
contenedor.appendChild(L_in);
//
}
</script>
<title>Documento sin título</title>
</head>

<body>
<form action='result.php' method='POST' name='dinamico' >
<table border="0" cellspacing="5" cellpadding="5"width="100%" >
<tr>
<td align="left" id="fiel">
<label>Cedula&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Apellido 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Apellido 2
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;
&nbsp;&nbsp;&nbsp; Nombre 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Nombre 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="button" value="+" onclick="involucrados(this)" /> </label>
</td>
</tr></table>
<input type='submit' name='Guardar' id='Guardar' value='Guardar' />
</form>
</body>
</html>

------ fin codigo html -------------------------------------------------------------------

y el php que te coloque en el action es este

----- php -------------------------------------------------------------------------------

<?php

echo "<pre>"; print_r($_POST);echo"</pre>";
?>
----fin php -----------------------------------------------------------------------------

Lo copias y funciona perfecto fijate la salida que yo probe es la siguiente:

Array
(
[cedula1] => 12345678
[ape11] => Perez
[ape21] => Rodriguez
[nom11] => Jose
[nom21] => Luis
[N_in] => 7
[L_in] => true
[cedula2] =>
[ape12] =>
[ape22] =>
[nom12] =>
[nom22] =>
[cedula3] => 98765432
[ape13] => Gomez
[ape23] =>
[nom13] => Daniel
[nom23] =>
[cedula4] => 44243423
[ape14] => LUGO
[ape24] => QUINTERO
[nom14] => ENRIQUE
[nom24] => M.
[cedula5] =>
[ape15] =>
[ape25] =>
[nom15] =>
[nom25] =>
[cedula6] =>
[ape16] =>
[ape26] =>
[nom16] =>
[nom26] =>
[cedula7] =>
[ape17] =>
[ape27] =>
[nom17] =>
[nom27] =>
[Guardar] => Guardar
)
Fijate que los campos terminan con 1,2,3,4,5,6,7 y el mayor nro coincide con el campo hidden N_in = 7 quiere decir que hay hasta 7 posibles filas cargada. No recuerdo en este momento para qué defini L_in pero no importa en este caso.

Bueno espero que te sirva de guía, si tomas todo esto y lo corres te va a funcionar de una...

Bueno cualquier cosa me avisas

saludos