16/05/2011, 09:42
|
| | | Fecha de Ingreso: mayo-2011
Mensajes: 8
Antigüedad: 13 años, 7 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>  <input type='button' value='+' onclick='inc_horaini(1);'>  <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>  <input type='button' value='+' onclick='inc_horafin(1);'>  <input type='button' value='-' onclick='dec_horafin(1);'></td>
<td align='center'><input type='text' size='5' id='duracion1' name='duracion[]' value='60' readonly>  <input type='button' value='+' onclick='inc_duracion(1);'>  <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>  <input type='button' value='+' onclick='inc_horaini(" + contslots + ");'>  <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>  <input type='button' value='+' onclick='inc_horafin(" + contslots + ");'>  <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>  <input type='button' value='+' onclick='inc_duracion(" + contslots + ");'>  <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 !!! |