Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/05/2011, 09:42
Avatar de luison99
luison99
 
Fecha de Ingreso: mayo-2011
Mensajes: 8
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Problema al recoger con $_POST los campos añadidos dinámicamente

Pues aki lo pongo (en esencia, quitando detalles superfluos):

El formulario:
----------------------------------------------------------------------------------------------
<form id='addpista' action='gestion_pistas.php?accion=add' METHOD = 'post' target='_self'>

<table id='tabla' width='50%' border='2' align='center' cellpadding='4' cellspacing='0'>
<tr><th>Slot</th><th>Hora inicio</th><th>Hora fin</th><th>Duracion(m)</th></tr>

<tr><td align='center'><input type='text' size='2' id='turno' name='turno[]' value='1' readonly></td>
<td align='center'><input type='text' size='5' id='horaini1' name='horaini[]' value='08:00h' readonly>&nbsp&nbsp<input type='button' value='+' onclick='inc_horaini(1);'>&nbsp&nbsp<input type='button' value='-' onclick='dec_horaini(1);'></td>
<td align='center'><input type='text' size='5' id='horafin1' name='horafin[]' value='09:00h' readonly>&nbsp&nbsp<input type='button' value='+' onclick='inc_horafin(1);'>&nbsp&nbsp<input type='button' value='-' onclick='dec_horafin(1);'></td>
<td align='center'><input type='text' size='5' id='duracion1' name='duracion[]' value='60' readonly>&nbsp&nbsp<input type='button' value='+' onclick='inc_duracion(1);'>&nbsp&nbsp<input type='button' value='-' onclick='dec_duracion(1);'></td>

</tr></table>
<tr><td><input type='button' id='addslot' value='+ slot' onclick=\"add_slot()\"></td><td><input type='button' id='addslot' value='- slot' onclick=\"del_slot()\"></td></tr>

<tr><td><input type='submit' id='addok' value='Aceptar'></td><td><input type='button' value='Cancelar' onclick='Javascript:history.back();'></td></tr>
</table>
</form>
------------------------------------------------------------------------------------------------------
El formulario consta de una fila con 4 campos (que los pongo con nombre de array pq se crearán más filas en la tabla dinámicamente), según esta función:

<script languaje="JavaScript">

var contslots = 1;

function add_slot() {
var turno_ant=document.getElementById('turno').value;
var tabla = document.getElementById("tabla");


var hi=document.getElementById('horaini'+contslots).va lue;
var hf=document.getElementById('horafin'+contslots).va lue;
var dur=document.getElementById('duracion'+contslots). value;
var hi_nextslot=hf;
var hf_nextslot=hi_nextslot+dur;

dur= 1*dur
hora = 1*(hi_nextslot.substr(0,2))
minuto = 1*(hi_nextslot.substr(3,2)) + dur

while (minuto >= 60) {
hora++;
minuto -=60;
}
hora = hora.toString();
minuto = minuto.toString();


hf_nextslot = (hora.length==1 ? "0"+hora:hora) + ":" + (minuto.length==1 ? "0"+minuto:minuto) + "h";

contslots++;

tr = tabla.insertRow(tabla.rows.length);
td = tr.insertCell(tr.cells.length);

td.innerHTML = "<input type='text' size='2' id='turno' name='turno[" + contslots + "]' value='" + contslots + "' readonly>";
td = tr.insertCell(tr.cells.length);

td.innerHTML = "<input type='text' size='5' id='horaini" + contslots + "' name='horaini[" + contslots + "]' value='" + hi_nextslot + "' readonly>&nbsp&nbsp<input type='button' value='+' onclick='inc_horaini(" + contslots + ");'>&nbsp&nbsp<input type='button' value='-' onclick='dec_horaini(" + contslots + ");'>";
td = tr.insertCell(tr.cells.length);

td.innerHTML = "<input type='text' size='5' id='horafin" + contslots + "' name='horafin[" + contslots + "]' value='" + hf_nextslot + "' readonly>&nbsp&nbsp<input type='button' value='+' onclick='inc_horafin(" + contslots + ");'>&nbsp&nbsp<input type='button' value='-' onclick='dec_horafin(" + contslots + ");'>";
td = tr.insertCell(tr.cells.length);

td.innerHTML = "<input type='text' size='5' id='duracion" + contslots + "' name='duracion[" + contslots + "]' value='" + dur + "' readonly>&nbsp&nbsp<input type='button' value='+' onclick='inc_duracion(" + contslots + ");'>&nbsp&nbsp<input type='button' value='-' onclick='dec_duracion(" + contslots + ");'>";
}

</script>

--------------------------------------------------------------------------------------------------------
Luego en la parte de procesado del formulario con PHP , miro lo que hay en el $_POST con un foreach y sólo están los datos de la primera línea (la que había en el formulario original). Los campos de las líneas añadidas dinámicamente no aparecen en el $_POST !!!