Foros del Web » Programando para Internet » Javascript »

problema con tabla dinámica dentro de un formulario

Estas en el tema de problema con tabla dinámica dentro de un formulario en el foro de Javascript en Foros del Web. Hola foreros, tengo un pequeño problema. Tengo una tabla dinámica dentro de un formulario, donde puedo añadir filas a la tabla dinámicamente al pinchar en ...
  #1 (permalink)  
Antiguo 09/05/2011, 09:22
Avatar de luison99  
Fecha de Ingreso: mayo-2011
Mensajes: 8
Antigüedad: 12 años, 11 meses
Puntos: 0
Pregunta problema con tabla dinámica dentro de un formulario

Hola foreros,

tengo un pequeño problema. Tengo una tabla dinámica dentro de un formulario, donde puedo añadir filas a la tabla dinámicamente al pinchar en un botón unsando una función de Javascript con insertRow, insertCell e td.innerHTML.

Esto me funciona bien y puedo añadir/quitar filas de la tabla, e incluso que en los campos de cada fila me ponga los valores que yo quiero.

El problema es que luego intento recoger los valores del formulario (input text en cada celda de la tabla) mediante $_POST para tratarlos con PHP/MySQL, pero sólo puedo coger los de la primera fila que estaban en el script original, los de las filas añadidas dinámicamente no los coge Es como si las filas que se añaden con la función estuvieran fuera del formulario!!!

¿Alguien sabe qué puedo haber hecho mal?

Muchas gracias. Aquí dejo la definición del formulario y la función de añadir filas (add_slot). Luis.

-------------------------------------
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.align="center";
td.innerHTML = "<input type='text' size='2' id='turno' name='turno" + contslots + "' value='" + contslots + "' readonly>";
td = tr.insertCell(tr.cells.length);
td.align="center";
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.align="center";
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.align="center";
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 + ");'>";
}
------------------
Formulario:
echo "<form id='addpista' action='gestion_pistas.php?accion=add' METHOD = 'post' target='_self' onsubmit='return chequear_formulario(this)'>";
echo "<tr><td>Nombre:</td><td><input type='text' size='60' id='nombre_pista' name='nombre_pista' value=''></td></tr>";
echo "<tr><td>Descripción:</td><td><input type='text' size='60' id='descr_pista' name='descr_pista' value=''></td></tr>";

echo "<tr><td><h3>Horario de la pista:</h3></td><td></td></tr>";
echo "<table id='tabla' width='50%' border='2' align='center' cellpadding='4' cellspacing='0'>";
echo "<tr><th>Slot</th><th>Hora inicio</th><th>Hora fin</th><th>Duracion(m)</th></tr>";

echo "<tr><td align='center'><input type='text' size='2' id='turno' name='turno1' value='1' readonly></td>";
echo "<td align='center'><input type='text' size='5' id='horaini1' name='horaini1' 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>";
echo "<td align='center'><input type='text' size='5' id='horafin1' name='horafin1' 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>";
echo "<td align='center'><input type='text' size='5' id='duracion1' name='duracion1' value='60' readonly>&nbsp&nbsp<input type='button' value='+' onclick='inc_duracion(1);'>&nbsp&nbsp<input type='button' value='-' onclick='dec_duracion(1);'></td>";
echo "</tr></table>";
echo "<tr><td><input type='button' id='addslot' value='+ slot' onclick=\"add_slot(this)\"></td><td><input type='button' id='addslot' value='- slot' onclick=\"del_slot()\"></td></tr>";

echo "<br><br>";
echo "<tr><td><input type='submit' id='addok' value='Aceptar'></td><td><input type='button' value='Cancelar' onclick='Javascript:history.back();'></td></tr>";
echo "</table></div>";
echo "</form>";

Etiquetas: tabla, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:20.