Foros del Web » Creando para Internet » HTML »

Tabla dentro de formulario

Estas en el tema de Tabla dentro de formulario en el foro de HTML en Foros del Web. Hola Soy medianamente nuevo en este foro, pero lo paso en lo que conozco que es PHP. Pero el día de hoy me enfrento a ...
  #1 (permalink)  
Antiguo 20/12/2011, 12:45
Avatar de ElSiniestro  
Fecha de Ingreso: diciembre-2011
Ubicación: Ibagué
Mensajes: 115
Antigüedad: 12 años, 5 meses
Puntos: 23
Pregunta Tabla dentro de formulario

Hola

Soy medianamente nuevo en este foro, pero lo paso en lo que conozco que es PHP. Pero el día de hoy me enfrento a un problema

Tengo un formulario con varias preguntas, pero que diseña la cantidad de respuestas según una cantidad de opciones. Como son varios grupos de radiobutton, los ubico por medio de una tabla. Sin embargo al momento de enviar el formulario no valida.

Al retirar la tabla si valida. Entonces mi pregunta es ¿hay alguna forma en la que se pueda enviar estando los elementos del formulario dentro de la tabla?

(Adjunto ejemplo del código generado)
Código HTML:
Ver original
  1. <div id="evaluacion">
  2. <h4>Por Favor Responde las siguientes preguntas</h4>
  3.     <form accept-charset="utf-8" onsubmit="return radioValidate();" id="autoevaluacion" action="reg-autoevaluacion.php" method="POST">
  4.         <table cellspacing="2" cellpadding="2">
  5.             <tr><th colspan="3">Titulo Pregunta.</th></tr>
  6.                         <tr><td colspan="3">Pregunta</td></tr>
  7.                         <tr><td></td><td>Asignatura 1<br/>Grupo: 01</td>
  8.                                                 <td>Asignatura 2<br/>Grupo: 01</td></tr>
  9.                         <tr><td>Muy Superior</td>
  10.                                <td><input type="radio" class="valor" name="asignatura01" id="1.6.0" value="6" /></td>
  11.                                <td><input type="radio" class="valor" name="asignatura11" id="1.6.1" value="6" /></td></tr>
  12.                         <tr><td>Superior</td>
  13.                                <td><input type="radio" class="valor" name="asignatura01" id="1.5.0" value="5" /></td>
  14.                                <td><input type="radio" class="valor" name="asignatura11" id="1.5.1" value="5" /></td></tr>
  15.                         <tr><td>Medio Alto</td>
  16.                                <td><input type="radio" class="valor" name="asignatura01" id="1.4.0" value="4" /></td>
  17.                                <td><input type="radio" class="valor" name="asignatura11" id="1.4.1" value="4" /></td></tr>
  18.                         <tr><td>Medio</td>
  19.                                <td><input type="radio" class="valor" name="asignatura01" id="1.3.0" value="3" /></td>
  20.                                <td><input type="radio" class="valor" name="asignatura11" id="1.3.1" value="3" /></td></tr>
  21.                         <tr><td>Bajo</td>
  22.                                <td><input type="radio" class="valor" name="asignatura01" id="1.2.0" value="2" /></td>
  23.                                <td><input type="radio" class="valor" name="asignatura11" id="1.2.1" value="2" /></td></tr>
  24.                         <tr><td>Muy Bajo</td>
  25.                                <td><input type="radio" class="valor" name="asignatura01" id="1.1.0" value="1" /></td>
  26.                                <td><input type="radio" class="valor" name="asignatura11" id="1.1.1" value="1" /></td></tr>
  27.                 </table>
  28.         <input type="submit" name="ingresar" value="Enviar Datos"/>
  29.     </form>
  30. </div>
  #2 (permalink)  
Antiguo 20/12/2011, 14:13
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Tabla dentro de formulario

buenas,
lo tuyo es super raro. de ninguna forma las tablas son una condicionante para el envio de formularios. los requisitos básicos para que los datos se envien son: un elemento FORM; que los controles de formularios (INPUT, TEXTAREA, etc) estén dentro de un FORM; y que los controles tengan un nombre asociado. tu código cumple con los requisitos.

hice la prueba elimiando el action, el method, y el onsubmit; lo demás funcionó bien. los parámetros se ve que se envian por url. comprobado en chrome15, firefox8, e iexplorer8. de nuevo, las tablas no deberían ser el factor determinante para el envio de formulario.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 20/12/2011 a las 19:17 Razón: error de redacción
  #3 (permalink)  
Antiguo 20/12/2011, 14:44
Avatar de ElSiniestro  
Fecha de Ingreso: diciembre-2011
Ubicación: Ibagué
Mensajes: 115
Antigüedad: 12 años, 5 meses
Puntos: 23
Respuesta: Tabla dentro de formulario

Gracias por tus pruebas y por el comentario

Creo que mejor organizaré todo por div's en vez de tablas, parece que al estar la tabla dentro del form el evento submit es pasado sin restricciones

Gracias de nuevo [Si llegas a saber el por qué del envío ignorando la función de validación, te encargo me avises (no me gusta quedar intrigado jejeje)]

Adjunto la función de validación
Código Javascript:
Ver original
  1. function validado(formulario) {
  2.     var asignatura = 2;
  3.     var seleccionado = false;
  4.     var total = asignatura*18;
  5.     var tselect = 0;
  6.     for(var j=0; j<asignatura; j++) {
  7.         var prenombre = "asignatura"+j.toString();
  8.         for(var i=1; i<=18;i++) {
  9.             var nombre = prenombre.toString()+i.toString();
  10.             radio = document.getElementsByName(nombre);
  11.             for(var h=0; h<radio.length; h++) {
  12.                 if(radio[h].checked) {
  13.                     seleccionado = true;
  14.                     ++tselect;
  15.                     continue;
  16.                     }
  17.                 }
  18.                 if(!seleccionado) {
  19.                     alert('Debes responder la pregunta # '+i);
  20.                     return false;
  21.                 }
  22.             }
  23.         }
  24.         if(tselect != total) {
  25.             alert('Revisa tus respuestas')
  26.             return false;
  27.         }
  28.         else{
  29.             return true;
  30.         }
  31.     }

Lo de 18 es que son 18 preguntas la del test y el 2 de var asignatura fue asignado por script PHP (el rango es de 1 asignatura hasta 8 )

Edito: Sin el formato de tabla la función si sirve

Etiquetas: submit, tabla, table, 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 13:19.