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

formulario varios registros modificar a la vez

Estas en el tema de formulario varios registros modificar a la vez en el foro de ASP Clásico en Foros del Web. Buenos dias: Soy un poco nuevo en esto i estoy intentando hacer un formulario que te muestre varios registros a la vez de una base ...
  #1 (permalink)  
Antiguo 26/09/2008, 06:24
 
Fecha de Ingreso: septiembre-2008
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 0
formulario varios registros modificar a la vez

Buenos dias:

Soy un poco nuevo en esto i estoy intentando hacer un formulario que te muestre varios registros a la vez de una base de datos y que te permita modificarlos. hasta aqui me ha salido. pero cuendo envio los datos modificados con un post, hace cosas muy raras.

He visto algunos Temas relacionados pero no lo consigo. El formulario me muestra una tabla con alumnos i dias de clase, i es para hacer el control de asistencia.

los datos los saco de una unica tabla con los campos: nombre alumno, dia1,dia2....dia12 los campos. i en el formulario se tiene que marcar/desmarcar los dias de assistencia.

POR FAVOR AYUDA, MY DAY, MUCHAS GRACIAS
  #2 (permalink)  
Antiguo 26/09/2008, 08:38
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Respuesta: formulario varios registros modificar a la vez

jcamus bienvenido al foro

antes que nada nos gustaría compartieras el código que te da error y la parte que haz hecho ya para poder ayudarte.

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #3 (permalink)  
Antiguo 01/10/2008, 01:21
 
Fecha de Ingreso: septiembre-2008
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: formulario varios registros modificar a la vez

PERDONAD LA TARDANZA, mil disculpas he estado muy liado, aqui va el codigo
---------------------------------------------------------------------------------------------------
asistencia.asp
--------------------------------------------------------------------------------------------------
<%


'Dimension variables
Dim vargrup

'Read in the record number to be updated

vargrup = CLng(Request.QueryString("grup"))
%>





<html>
<head>
<title>AULA</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">

<!--
body {
background-color: #999999;
}
.Estilo1 {font-family: Arial, Helvetica, sans-serif}
body,td,th {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
}
.Estilo2 {
font-size: 18px;
color: #990000;
}
a:link {
color: #993333;
text-decoration: none;
}
a:visited {
color: #993333;
text-decoration: none;
}
a:hover {
text-decoration: none;
}
a:active {
text-decoration: none;
}
.Estilo10 {font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; }
a {
font-size: 12px;
color: #CC0033;
font-weight: bold;
}
.Estilo12 {font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #FF0000; }
.Estilo13 {color: #000066}
.Estilo14 {font-size: 14px}
-->
</style></head>
<body>
<form action="modificarasistencia.asp" method="post" onsubmit = "return validar(this)" >
<H1 align="left" class="Estilo1 Estilo2">CONTROL ASSISTENCIA </H1>

<div align="left">
<table width="617" border="1" bordercolor="#999999">
<tr>
<td width="172"><div align="left"><span class="Estilo1 Estilo14"><strong>PACIE<strong>NTS </strong></strong></span></div></td>
<td width="429"><div align="left"></div></td>
</tr>
</table>



<div align="left">
<%
Dim vargrup2

'Read in the record number to be updated

vargrup2 = CLng(Request.QueryString("grup"))
Dim oConn,strSQL, objRS

Set oConn = Server.CreateObject("ADODB.Connection")

oConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("aula.mdb"))

strSQL = "SELECT * FROM usuari, Assistents WHERE Assist_codi_usuari=Id_usuari and Assist_codi_grup=" & vargrup2& "
Set objRS = oConn.Execute(strSQL)

%>
<%
contador=0
%>

</div>
<TABLE width="652" height="33" BORDER=1 CELLPADDING=1 CELLSPACING=1 bgcolor="#CCCCCC">
<TR>
<TD width="67" height="29"><span class="Estilo10">&nbsp;Cip</span></TD>
<TD width="97"><span class="Estilo10">&nbsp;Cognom1</span></TD>
<TD width="85"><span class="Estilo10">&nbsp;Cognom2</span></TD>
<TD width="54"><div align="center"><strong>Nom</strong></div></TD>
<TD width="80"><div align="center"><span class="Estilo12">&nbsp;<span class="Estilo13">Sessio 1</span></span></div></TD>
<TD width="74"><div align="center"><span class="Estilo12">&nbsp;<span class="Estilo13">Sessio 2</span></span></div></TD>
<TD width="73"><div align="center"><span class="Estilo12">&nbsp;<span class="Estilo13">Sessio 3</span></span></div></TD>
<TD width="79"><div align="center"><span class="Estilo12">&nbsp;<span class="Estilo13">Sessio 4</span></span></div></TD>
<TD width="79"><div align="center"><span class="Estilo12">&nbsp;<span class="Estilo13">Sessio 5</span></span></div></TD>
<TD width="79"><div align="center"><span class="Estilo12">&nbsp;<span class="Estilo13">Sessio 6</span></span></div></TD>
<TD width="79"><div align="center"><span class="Estilo12">&nbsp;<span class="Estilo13">Sessio 7</span></span></div></TD>
<TD width="79"><div align="center"><span class="Estilo12">&nbsp;<span class="Estilo13">Sessio 8</span></span></div></TD>
<TD width="79"><div align="center"><span class="Estilo12">&nbsp;<span class="Estilo13">Sessio 9</span></span></div></TD>
<TD width="79"><div align="center"><span class="Estilo12">&nbsp;<span class="Estilo13">Sessio 10</span></span></div></TD>
<TD width="79"><div align="center"><span class="Estilo12">&nbsp;<span class="Estilo13">Sessio 11</span></span></div></TD>
<TD width="79"><div align="center"><span class="Estilo12">&nbsp;<span class="Estilo13">Sessio 12</span></span></div></TD>
</TR>
<%

while (not objRS.Eof)
Response.Write("<tr><td>&nbsp;" & objRS("codi_usuari") & "</td><td>&nbsp;" & objRS("Tcog1")& "</td><td>&nbsp;"& objRS("Tcog2")& "</td><td>&nbsp;" & objRS("Tnom") & "</td> ")%>
<td> <input name="F_codi_usuari" type="hidden" id="F_codi_usuari" value="<% = objRS("Assist_codi_usuari")%>">
<input name="F_codi_grup" type="hidden" id="F_codi_grup" value="<% = objRS("Assist_codi_grup")%>">
<input name="fdia1" type="checkbox" id="fdia1"tabindex="9" ONCLICK="mostrar_ocultar(this.checked);" <%if objRS("Assist_1")="on" then%>CHECKED<%end if%>>
</td>
<td>
<input name="fdia2" type="checkbox" id="fdia2"tabindex="9" ONCLICK="mostrar_ocultar(this.checked);" <%if objRS("Assist_2")="on" then%>CHECKED<%end if%>>
</td>
<td>
<input name="fdia3" type="checkbox" id="fdia3"tabindex="9" ONCLICK="mostrar_ocultar(this.checked);" <%if objRS("Assist_3")="on" then%>CHECKED<%end if%>>
</td>
<td>
<% contador=contador+1 %>

<input name="fdia4" type="checkbox" id="fdia4"tabindex="9" ONCLICK="mostrar_ocultar(this.checked);" <%if objRS("Assist_4")="on" then%>CHECKED<%end if%>>
</td>

<td>
<input name="fdia5" type="checkbox" id="fdia5"tabindex="9" ONCLICK="mostrar_ocultar(this.checked);" <%if objRS("Assist_5")="on" then%>CHECKED<%end if%>>
</td>
<td>
<input name="fdia6" type="checkbox" id="fdia6"tabindex="9" ONCLICK="mostrar_ocultar(this.checked);" <%if objRS("Assist_6")="on" then%>CHECKED<%end if%>>
</td>
<td>
<input name="fdia7" type="checkbox" id="fdia7"tabindex="9" ONCLICK="mostrar_ocultar(this.checked);" <%if objRS("Assist_7")="on" then%>CHECKED<%end if%>>
</td>
<td>
<input name="fdia8" type="checkbox" id="fdia8"tabindex="9" ONCLICK="mostrar_ocultar(this.checked);" <%if objRS("Assist_8")="on" then%>CHECKED<%end if%>>
</td>
<td>
<input name="fdia9" type="checkbox" id="fdia9"tabindex="9" ONCLICK="mostrar_ocultar(this.checked);" <%if objRS("Assist_9")="on" then%>CHECKED<%end if%>>
</td>
<td>
<input name="fdia10" type="checkbox" id="fdia10"tabindex="9" ONCLICK="mostrar_ocultar(this.checked);" <%if objRS("Assist_10")="on" then%>CHECKED<%end if%>>
</td>

<td>
<input name="fdia11" type="checkbox" id="fdia11"tabindex="9" ONCLICK="mostrar_ocultar(this.checked);" <%if objRS("Assist_11")="on" then%>CHECKED<%end if%>>
</td>

<td>
<input name="fdia12" type="checkbox" id="fdia12"tabindex="9" ONCLICK="mostrar_ocultar(this.checked);" <%if objRS("Assist_12")="on" then%>CHECKED<%end if%>>
</td>


<%
objRS.MoveNext
wend

oConn.Close
set objRS = nothing
set oConn = nothing

%>
<input name="F_contador" type="hidden" class="mayusculas" id="Fxeramp4" tabindex="1" value=<% =contador%> size="2" maxlength="2">
</table>
</div>
<input type="submit" name="accion" value="Guardar">
</form>
</body>
</html>
---------------------------------------------------------------------------------------------
modificarasistencia.asp
----------------------------------------------------------------------------------------------
<%


Dim adoCon 'Holds the Database Connection Object
Dim rsUpdateEntry 'Holds the recordset for the record to be updated
Dim strSQL 'Holds the SQL query for the database
Dim lngRecordNo 'Holds the record number to be updated
Dim grup
Dim usuari

contador= CLng(Request.Form("F_contador"))
contadornuevos=1
contadorindice=0

for contadorindice=1 to contador


grup = CLng(Request.Form("F_codi_grup")(contadorindice))
usuari = CLng(Request.Form("F_codi_usuari")(contadorindice) )

Response.Write("<tr><td>&nbsp;" &Request.Form("F_codi_grup")(contadornuevos) & "</td><td>")


Set adoCon = Server.CreateObject("ADODB.Connection")


adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("aula.mdb")



Set rsUpdateEntry = Server.CreateObject("ADODB.Recordset")


strSQL = "SELECT Assistents.* FROM Assistents WHERE Assist_codi_grup=" & grup & "and Assist_codi_usuari=" & usuari


rsUpdateEntry.CursorType = 2


rsUpdateEntry.LockType = 3


rsUpdateEntry.Open strSQL, adoCon




rsUpdateEntry.Fields("Assist_1") = Request.Form("fdia1")
rsUpdateEntry.Fields("Assist_2") = Request.Form("fdia2")
rsUpdateEntry.Fields("Assist_3") = Request.Form("fdia3")



rsUpdateEntry.Update


rsUpdateEntry.Close
Set rsUpdateEntry = Nothing
Set adoCon = Nothing
contadornuevos=contadornuevos+1

NEXT

Response.Redirect "relaciousuaris.asp"
%>
  #4 (permalink)  
Antiguo 01/10/2008, 01:54
 
Fecha de Ingreso: septiembre-2008
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: formulario varios registros modificar a la vez

Concreto, no me da error, me redirige i graba los valores mal. Coje los datos del post i no diferencia si es de un registro o otro. No se que logica emplea. No os fijeis en los nombres de base datos o campos, puede que haya algun error (que no coincidan exactamente en algun punto) ya que los he modificado para que sea mas comprensible

MUCHAS GRACIAS POR LA AYUDA
  #5 (permalink)  
Antiguo 01/10/2008, 19:04
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Respuesta: formulario varios registros modificar a la vez

bueno leí el código pero la verdad medio me perdí


la idea es ?

1 leer uno a uno los usuarios
2 meter dentro de cada usuario los ckecbox con las asistencias ?

enviair estos datos a actualizar ?
__________________
JuanRa Pérez
San Salvador, El Salvador
  #6 (permalink)  
Antiguo 02/10/2008, 00:13
 
Fecha de Ingreso: septiembre-2008
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: formulario varios registros modificar a la vez

Exacto:

la primera pagina te muestra la assistencia a classe de los diferentes alumnos, introduces chekeas si ha venido o no.

Y lo envia con por post a otra pagina las variables modificadas. el problema es que no se como recogerlo en la segunda pagina para que lo guarde bien

GRACIAS
  #7 (permalink)  
Antiguo 02/10/2008, 14:02
 
Fecha de Ingreso: septiembre-2008
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: formulario varios registros modificar a la vez

Hola, os pongo como lo envia el post
Datos de POST:
F_codi_usuari=133&F_codi_grup=13&fdia2=on&fdia4=on &F_codi_usuari=16&F_codi_grup=13&fdia3=on&fdia4=on &F_contador=2&accion=Guardar

Como podeis ver coge las variables de cada alumno que se ha modificado alguna variable. en este ejemplo el alumno 133 del grupo 13 ha assistido el dia 2 i el alumno 16 del mismo grupo ha assistido el dia 3 i el dia 4. Tambien paso un contador de registros que se han mostrado en la pagina.

No se como recoger estos valores en la tabla de la base de datos formada por los campos:
codigo_usuario
codigo_grupo
dia1
dia2
dia3
....
dia12

no se si es posible lo que estoy haciendo? o si alguien tiene un ejemplo similar?

GRACIAS
  #8 (permalink)  
Antiguo 03/10/2008, 06:15
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
Respuesta: formulario varios registros modificar a la vez

Hola

No veo que estes usando el contador en el formulario, me explico. Puedes hacer algo como

Código asp:
Ver original
  1. <td> <input name="F_codi_usuari_<%=contador%>" type="hidden" id="F_codi_usuari" value="<% = objRS("Assist_codi_usuari")%>">
  2. <input name="F_codi_grup_<%=contador%>" type="hidden" id="F_codi_grup" value="<% = objRS("Assist_codi_grup")%>">
  3.  
  4. etc...

Al recibirlos

Código asp:
Ver original
  1. strSQL = "SELECT Assistents.* FROM Assistents WHERE "
  2. for contadorindice=1 to contador
  3. strQSL = strSQL & "Assist_codi_grup=" & CLng(Request.Form("F_codi_grup_"&contadorindice)) & "and Assist_codi_usuari=" & CLng(Request.Form("F_codi_usuari_"&contadorindice))
  4. Next

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;" />
  #9 (permalink)  
Antiguo 03/10/2008, 14:38
 
Fecha de Ingreso: septiembre-2008
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: formulario varios registros modificar a la vez

Adler: Muchas, muchas gracias

ha funcionado perfecto
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:40.