Foros del Web » Programando para Internet » ASP Clásico »

Formulario dinamico

Estas en el tema de Formulario dinamico en el foro de ASP Clásico en Foros del Web. hola amigos, necesito una vez mas de vuestra ayuda. sucede que tengo un sistema que genera un formulario dinamico en asp. con checkbox , radion ...
  #1 (permalink)  
Antiguo 01/05/2010, 17:13
 
Fecha de Ingreso: noviembre-2007
Mensajes: 69
Antigüedad: 16 años, 5 meses
Puntos: 0
Formulario dinamico

hola amigos, necesito una vez mas de vuestra ayuda.

sucede que tengo un sistema que genera un formulario dinamico en asp.

con checkbox , radion button y casillas de texto.

al momento de generar el formulario se crea asi com ejemplo:
si son radio button seria asi

rad_101=1
rad_102=2
rad_103=3

si son textos

asi :

tex_101 = texto1
tex_102 = texto2
tex_103 = texto3

los datos del radiobutton los recojo con un for each var in , eso funciona para grabar una sola variable, que seria los rad , mi consulta es :

como recojo los datos de las casillas de texto y me las guarde en mi base al mismo tiempo que los radiobutton ??

por ejemplo :

campo 1 campo 2

1 texto1
2 texto1
3 texto1

les recuerdo q son formularios dinamicos no son fijos .

Muchas gracias
  #2 (permalink)  
Antiguo 01/05/2010, 17:25
 
Fecha de Ingreso: noviembre-2007
Mensajes: 69
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Formulario dinamico

Cita:
Iniciado por MAIKIKY Ver Mensaje
hola amigos, necesito una vez mas de vuestra ayuda.

sucede que tengo un sistema que genera un formulario dinamico en asp.

con checkbox , radion button y casillas de texto.

al momento de generar el formulario se crea asi com ejemplo:
si son radio button seria asi

rad_101=1
rad_102=2
rad_103=3

si son textos

asi :

tex_101 = texto1
tex_102 = texto2
tex_103 = texto3

los datos del radiobutton los recojo con un for each var in , eso funciona para grabar una sola variable, que seria los rad , mi consulta es :

como recojo los datos de las casillas de texto y me las guarde en mi base al mismo tiempo que los radiobutton ??

por ejemplo :

campo 1 campo 2

1 texto1
2 texto1
3 texto1

les recuerdo q son formularios dinamicos no son fijos .

la url q se genera seria asi :

datos.asp?rad_id=101&text_101=texto1&rad_id=102&te xt_102=texto2&rad_id=103&text_103=texto3

rad seria variable 1
tec variable 2


Muchas gracias
  #3 (permalink)  
Antiguo 02/05/2010, 07:32
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Formulario dinamico

Hola

No he entendido muy bien cual es la configuración de tu formulario

Esto es un ejemplo

Código HTML:
Ver original
  1. </head>
  2. <form action="RecogerSOLOCamposRellenos.asp" method="post">
  3. <input type="text" id="1" name="cam_form" value="" tabindex="1" />
  4. <input type="text" id="txt1" name="cam_form" value="" tabindex="2" />
  5. <input type="text" id="txt11" name="cam_form" value="" tabindex="3" />
  6. <textarea id="txtarea1" name="cam_form" tabindex="4"></textarea><br />
  7.  
  8. <input type="text" id="2" name="cam_form" value="" tabindex="5" />
  9. <input type="text" id="txt2" name="cam_form" value="" tabindex="6" />
  10. <input type="text" id="txt22" name="cam_form" value="" tabindex="7" />
  11. <textarea id="txtarea2" name="cam_form" tabindex="8"></textarea><br />
  12.  
  13. <input type="text" id="3" name="cam_form" value="" tabindex="9" />
  14. <input type="text" id="txt3" name="cam_form" value="" tabindex="10" />
  15. <input type="text" id="txt33" name="cam_form" value="" tabindex="11" />
  16. <textarea id="txtarea3" name="cam_form" tabindex="12"></textarea><br />
  17.  
  18. <input type="text" id="4" name="cam_form" value="" tabindex="13" />
  19. <input type="text" id="txt4" name="cam_form" value="" tabindex="14" />
  20. <input type="text" id="txt44" name="cam_form" value="" tabindex="15" />
  21. <textarea id="txtarea4" name="cam_form" tabindex="16"></textarea><br />
  22.  
  23. <input type="submit"  value="Enviar" />
  24. </form>
  25. </body>
  26. </html>


RecogerSOLOCamposRellenos.asp

Código ASP:
Ver original
  1. <&#37;
  2. Dim Arr() ' Valores de todos los campos recibidos
  3. For each campo in Request.Form
  4. valCampos = valCampos & Request.Form(campo)
  5. Next
  6.  
  7. division = Split(valCampos, ",")
  8.  
  9. for i = 0 to UBound(division)
  10. Redim preserve Arr(i+1)
  11. Arr(i) = Trim(division(i))
  12. next
  13.  
  14. Dim Arr2() ' Valores del primer campo de cada tr
  15. Dim Arr3() ' Valores del segundo campo de cada tr
  16. Dim Arr4() ' Valores del tercer campo de cada tr
  17. Dim Arr5() ' Valores del cuarto campo de cada tr
  18.  
  19. j = 0
  20. for i = 0 to ubound(Arr)-1 step 4
  21. if Arr(i) <> "" then
  22. Redim preserve Arr2(j)
  23. Arr2(j) = Arr(i)
  24. j = j +1
  25. end if
  26. next
  27.  
  28. x = 0
  29. for i = 1 to ubound(Arr)-1 step 4
  30. if Arr(i) <> "" then
  31. Redim preserve Arr3(x)
  32. Arr3(x) = Arr(i)
  33. x = x +1
  34. end if
  35. next
  36.  
  37.  
  38. p = 0
  39. for i = 2 to ubound(Arr)-1 step 4
  40. if Arr(i) <> "" then
  41. Redim preserve Arr4(p)
  42. Arr4(p) = Arr(i)
  43. p = p +1
  44. end if
  45. next
  46.  
  47. z = 0
  48. for i = 3 to ubound(Arr)-1 step 4
  49. if Arr(i) <> "" then
  50. Redim preserve Arr5(z)
  51. Arr5(z) = Arr(i)
  52. z = z +1
  53. end if
  54. next
  55.  
  56. ' conexión bd
  57.  
  58. for i = 0 to j-1
  59. 'Response.Write Arr2(i) & ","
  60. 'Response.Write Arr3(i) & ","
  61. 'Response.Write Arr4(i) & ","
  62. 'Response.Write Arr5(i) & "<br />"
  63. SQL="INSERT INTO tabla (campo, campo2, campo3, campo4) VALUES ('"&Arr2(i)&"', '"&Arr3(i)&"', #"&Arr4(i)&"#, #"&Arr5(i)&"#);"
  64. oConn.Execute(SQL)
  65. next
  66. oConn.Close
  67. set oConn = nothing
  68.  
  69. Response.Write("Datos Insertados con &eacute;xito")
  70. %>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #4 (permalink)  
Antiguo 03/05/2010, 12:10
 
Fecha de Ingreso: noviembre-2007
Mensajes: 69
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Formulario dinamico

Gracias Adler por tu respuesta..

funciona tal cual lo indicas, pero q pasa si son mas de 4 variables las q ocupo ??

la aplicacion q estoy desarrollando genera preguntas y respuestas a traves de los parametros q el usuario le indique, es decir, puedo crear una pregunta abierta y otra con alternativas, pero eso a partir de lo que yo quiera mostrar en el formulario(no es fijo) de este modo el formulario se va creando con datos q toma desde una base de datos y no con un codigo en html.
si el tipo es 1 dibuja un cuadro te texto y su id de pregunta
si el tipo es 2 genera un radiobutton y su id de pregunta y id de alternativa


para el tipo 2 , la aplicacion me funciona ok , pero cuando trato de hacerlo con texto libre me causa problemas, ya q solo recoje el texto o el id de respuesta, no ambos.


te envio un formulario de ejemplo generado por mi sistema :


<html>
<head>
<title> </title>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<p><span class="label"></span></p>
<table width="80%" border="0" align="center">
<tr>
<td bgcolor="#CCCCCC"><p>

</p>
<form name="dtr_frm" method="get" action="Int_Mer_00015.asp">
<div align="center"></div>
<hr width="100%" noshade class="tbflat">
<table width="100%" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="credit_footer">
<tr>
<td class="label_t"><font size="2"><strong><font color="#0033CC">
Pregunta Nro : - favor opine sobre el departamento de informatica </font> </strong> </font>
<div align="right"></div></td>
</tr>
<tr>
<td height="10%" background="Images/barrita_1.png" bgcolor="#003366"></td>
</tr>
<tr>
<td background="Images/barrita_1.png" bgcolor="#003366"></td>
</tr>
</table>
<hr width="100%" noshade class="tbflat">


<table width="80%" align="center" bgcolor="#CAEEFF" class="label">
<tr class="label">
<td bordercolor="#CCCCCC" bgcolor="#CCCCCC" > <div align="center" class="muestra">Respuesta abierta </div> <label></label></td>
</tr>
<tr class="label">
<td bordercolor="#CCCCCC" bgcolor="#CCCCCC" ><div align="center">
<textarea name="Abr_392_1545" cols="120" rows="5" class="lista"></textarea>
<input name="Alt_" type="visible" value="1545">
</div></td>
</tr>
</table>


<div align="center"></div>
<hr width="100%" noshade class="tbflat">
<table width="100%" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="credit_footer">
<tr>
<td class="label_t"><font size="2"><strong><font color="#0033CC">
Pregunta Nro : - buena caliadad de servicio ?? </font></strong></font>
<div align="right"></div></td>
</tr>
<tr>
<td height="10%" background="Images/barrita_1.png" bgcolor="#003366"></td>
</tr>
<tr>
<td background="Images/barrita_1.png" bgcolor="#003366"></td>
</tr>
</table>
<hr width="100%" noshade class="tbflat">

<table width="100%" align="center" bgcolor="#CAEEFF" class="label">
<tr class="label_t">
<td width="0%" bordercolor="#CCCCCC" bgcolor="#CCCCCC" >&nbsp;</td>
<td width="48%" bgcolor="#F2F2F2" >Si </td>
<td width="52%" bgcolor="#F2F2F2" ><input name="Rad_393" type="radio" value="1546">
</td>
</tr>
</table>

<table width="100%" align="center" bgcolor="#CAEEFF" class="label">
<tr class="label_t">
<td width="0%" bordercolor="#CCCCCC" bgcolor="#CCCCCC" >&nbsp;</td>
<td width="48%" bgcolor="#F2F2F2" >no </td>
<td width="52%" bgcolor="#F2F2F2" ><input name="Rad_393" type="radio" value="1547">
</td>
</tr>
</table>

<table width="100%" align="center" bgcolor="#CAEEFF" class="label">
<tr class="label_t">
<td width="0%" bordercolor="#CCCCCC" bgcolor="#CCCCCC" >&nbsp;</td>
<td width="48%" bgcolor="#F2F2F2" >mas o menos </td>
<td width="52%" bgcolor="#F2F2F2" ><input name="Rad_393" type="radio" value="1548">
</td>
</tr>
</table>

<div align="center"></div>
<hr width="100%" noshade class="tbflat">
<table width="100%" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="credit_footer">
<tr>
<td class="label_t"><font size="2"><strong><font color="#0033CC">
Pregunta Nro : - estado del servicio </font></strong></font>
<div align="right"></div></td>
</tr>
<tr>
<td height="10%" background="Images/barrita_1.png" bgcolor="#003366"></td>
</tr>
<tr>
<td background="Images/barrita_1.png" bgcolor="#003366"></td>
</tr>
</table>
<hr width="100%" noshade class="tbflat">


<table width="80%" align="center" bgcolor="#CAEEFF" class="label">
<tr class="label">
<td bordercolor="#CCCCCC" bgcolor="#CCCCCC" > <div align="center" class="muestra">Respuesta abierta </div> <label></label></td>
</tr>
<tr class="label">
<td bordercolor="#CCCCCC" bgcolor="#CCCCCC" ><div align="center">
<textarea name="Abr_394_1549" cols="120" rows="5" class="lista"></textarea>
<input name="Alt_" type="visible" value="1549">
</div></td>
</tr>
</table>


</p>
</Form>

</tr>
</table>
<p>&nbsp;</p>
</body>
</html>

muchas gracias
  #5 (permalink)  
Antiguo 05/05/2010, 06:12
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Formulario dinamico

Hola

Así a bote pronto se me ocurre que en el formulario podrías usar un campo hidden que indicara el número de campos ha recibir arreglo a la
opción (1 ó 2). Este campo lo colocas como último campo del formulario.
El valor de este campo lo recoges al principio de todo

Cita:
tipo = Request.Form("campohidden")
Dim Arr() ' Valores de todos los campos recibidos
For each campo in Request.Form
valCampos = valCampos & Request.Form(campo)
Next
Después en este bucle

Cita:
for i = 0 to UBound(division)-1
Redim preserve Arr(i+1)
Arr(i) = Trim(division(i))
next
Por último, creas un bucle, dentro creas otro bucle y le indicas la iteración con el valor del campo hidden y la matriz Arr1 la haces bidimensional

Cita:
Dim Arr1()

for n = 0 to valor

j = 0
for i = 0 to ubound(Arr)-1 step valor
if Arr(i) <> "" then
Redim preserve Arr1(n,j)
Arr1(n,j) = Arr(i)
j = j +1
end if
next

next 'n
Puede que funcione

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Etiquetas: dinamico, 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 22:04.