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

Guardar registros de checkbox con rs a sql

Estas en el tema de Guardar registros de checkbox con rs a sql en el foro de ASP Clásico en Foros del Web. Anexo encontraran el codigo de mis ASP lo que necesito es de una pagina que despliega informacion de SQL y muestro una serie de checkbox ...
  #1 (permalink)  
Antiguo 11/08/2011, 13:19
 
Fecha de Ingreso: mayo-2011
Mensajes: 3
Antigüedad: 12 años, 10 meses
Puntos: 0
Guardar registros de checkbox con rs a sql

Anexo encontraran el codigo de mis ASP lo que necesito es de una pagina que despliega informacion de SQL y muestro una serie de checkbox dependiendo de la cantidad de lineas de un pedido. hasta aqui no hay problema pero necesito actualizar la bd con los checkbox seleccionados en el RS. anexo los codigos y espero su ayuda.

PRIMER ASP
Dim Conex, Linea, IDPedido

if request.form("TxtPedido") <> "" then
'IDPedido = "'" & request.form("TxtPedido")& "'"
IDPedido = int(request.form("TxtPedido"))
' Response.Write(IDPedido)
Linea = 1
'Creamos el objeto de conexion ahora...
Set Conex = Server.CreateObject ("ADODB.Connection")

Conex.Open "driver={SQL Server};server=WEBVYCISA\SQLexpress; database=VYCPROD;uid=sa;pwd=Vycisa2010"

'response.Write("Conexion correcta")

set registros = Conex.execute("select fecha, codclien, pedido, cantidad, descripcion, detalle, estado, fechaact, observaciones from Produccion where pedido = ('"&IDPedido&"') and producto < 004000")

'set registros = Conex.execute("select fecha, codclien, pedido, cantidad, descripcion, detalle, estado, fechaact, observaciones from Produccion where pedido ='426896' and producto < 004000")

Do While Not registros.EOF
%>

UNA SERIE DE DATOS ..... CONTINUA
<tr>
<TD width="30" height="40"><div align="center" class="Estilo6"><font size="-2"><%= Linea %></font></div></TD>
<TD width="42" height="40"><div align="center"><strong><span class="Estilo8"><font size="-2"><%= registros.Fields("CODCLIEN").Value %></font></span></strong></div></TD>
<TD width="34"><div align="center"><strong><span class="Estilo8"><font size="-2"><%= registros.Fields("PEDIDO").Value %></font></span></strong></div></TD>
<TD width="32"><div align="center"><strong><span class="Estilo8"><font size="-2"><%= registros.Fields("CANTIDAD").Value %></font></span></strong></div></TD>
<TD width="34" class="Estilo3"><font size="-2"><%= registros.Fields("DESCRIPCION").Value %></font></font></TD>
<TD width="47"><div align="center" class="Estilo3"><font size="-2"><%= registros.Fields("detalle").Value %></font></font></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<TD><div align="center"><input type="checkbox" onClick="verFechaActual2()" name="Checkbox01" value="1"></div></TD>
<tr>
<TD height="24" colspan="5"><div align="center" class="Estilo7">Observaciones</div></TD>
<TD colspan="24" class="Estilo6"><input name="observ" type="text" id="observ" size="150" />
</font></TD>
</TR>

<%
registros.MoveNext

Linea = Linea + 1
%>

<%
Loop
%>
<%
registros.Close

Set registros = Nothing

Conex.Close

Set Conex = Nothing


%>
</TABLE>
<%
Else
%>
<div align="center">

<span class="Estilo14"><a href="javascript:window.history.back();"> Teclea el numero de Pedido, Regresar AQUI</a>

</span></div>
<%
end if
%>


SEGUNDO ASP PARA ACTUALIZAR....

<%
dim conn,ssql,registros, Pedido,cantorecto,cantoforma,biselrecto,biselforma ,corte45,esqredondas,filosmuertos,taladros,avellan ado,saques,astrias,esqmatadas,plateado,pintura,sat inado,curvado,laminado,pegadouv,templado,cenefa,es merilado,pt,entrega

Pedido=request.form("IDpedido")
response.Write(Pedido)
'corte=request.Form("Corte")
cantorecto=request.Form("Cantorecto")
cantofoma=request.Form("Cantoforma")
biselrecto=request.Form("biselrecto")
biselforma=request.Form("biselforma")
corte45=request.Form("corte45")
esqredondas=request.Form("esqredondas")
filosmuertos=request.Form("filosmuertos")
taladros=request.Form("taladros")
avellanado=request.Form("avellanado")
saques=request.Form("saques")
astrias=request.Form("astrias")
esqmatadas=request.Form("esqmatadas")
plateado=request.Form("plateado")
pintura=request.Form("pintura")
satinado=request.Form("satinado")
curvado=request.Form("curvado")
Laminado=request.Form("Laminado")
PegadoUV=request.Form("PegadoUV")
Templado=request.Form("Templado")
Cenefa=request.Form("Cenefa")
Cenefa=request.Form("Esmerilado")
pt=request.Form("pt")
entrega=request.Form("entrega")

ssql=("update Produccion set Canto_recto='"& cantorecto &"', Canto_forma='"& CantoForma &"', Bisel_recto='"& BiselRecto &"', Bisel_forma= '"& BiselForma &"', corte_45='"& Corte45 &"', esq_redondas='"& EsqRedondas &"', Filos_Muertos='"& FilosMuertos &"', Taladros='"& Taladros &"', avellanado='"& Avellanado &"', saques='"& Saques &"', astrias='"& Astrias &"', esq_matadas='"& EsqMatadas &"', plateado='"& Plateado &"', Pintura='"& Pintura &"', Satinado='"& Satinado &"', Curvado='"& Curvado &"', Laminado='"& Laminado &"', Pegado_UV'"& PegadoUV &"', Templado='"& Templado &"', cenefa='"& Cenefa &"', esmerilado='"& Esmerilado &"', pt='"& PT &"', entrega='"& Entrega &"' where pedido = '"& Pedido &"'")
response.Write(ssql)
Set conn = Server.CreateObject ("ADODB.Connection")

conn.Open "driver={SQL Server};server=WEBVYCISA\SQLexpress; database=VYCPROD;uid=sa;pwd=Vycisa2010"

'set registros = conn.execute("update Produccion set Corte= '"& corte &"', Canto_recto='"& cantorecto &"',Canto_forma='"& CantoForma &"',Bisel_recto='"& BiselRecto &"',Bisel_forma= '"& BiselForma &"',corte_45='"& Corte45 &"',esq_redondas='"& EsqRedondas &"',Filos_Muertos='"& FilosMuertos &"',Taladros='"& Taladros &"',avellanado='"& Avellanado &"',saques='"& Saques &"',astrias='"& Astrias &"',esq_matadas='"& EsqMatadas &"',plateado='"& Plateado &"',Pintura='"& Pintura &"',Satinado='"& Satinado &"',Curvado='"& Curvado &"',Laminado='"& Laminado &"',Pegado_UV'"& PegadoUV &"',Templado='"& Templado &"',cenefa='"& Cenefa &"',esmerilado='"& Esmerilado &"',pt='"& PT &"',entrega='"& Entrega &"' where pedido = ('"&IDPedido&"')")

set registros = conn.execute(ssql)

'Set objRS = con.Execute(sql)
Do While Not registros.EOF
registros.MoveNext

Loop

registros.Close

Set registros = Nothing

conn.Close

Set conn = Nothing
%>

MUCHAS GRACIAS Y EN VERDAD ME URGE GRACIAS
  #2 (permalink)  
Antiguo 11/08/2011, 15:05
Avatar de Javier01  
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 16 años, 2 meses
Puntos: 31
Respuesta: Guardar registros de checkbox con rs a sql

Buenas tardes,
No entiendo bien que es lo que necesitas.
Pero la forma de recorrer varios check y obtener cuales son los que están
tildados es la siguiente:

(todo en la misma pagina asp)

Código ASP:
Ver original
  1. Dim sTotalFilasRS, x, i
  2.  
  3. sTotalFilasRS = request("TotalFilasRS")
  4.  
  5. For x=1 to sTotalFilasRS
  6.     response.write "<BR><B>Selec Linea" & x & "</B>: "
  7.     For i=1 to Request("CheckboxLinea" & x).Count
  8.         response.write Request("CheckboxLinea" & x)(i) & " "
  9.     Next
  10. Next


Código HTML:
Ver original
  1.     <tr>
  2.         <td>FILA 1</td>
  3.         <td><input type="checkbox" name="CheckboxLinea1" value="valor1"></td>
  4.         <td><input type="checkbox" name="CheckboxLinea1" value="valor2"></td>
  5.         <td><input type="checkbox" name="CheckboxLinea1" value="valor3"></td>
  6.     </tr>
  7.     <tr>
  8.         <td>FILA 2</td>
  9.         <td><input type="checkbox" name="CheckboxLinea2" value="valor1"></td>
  10.         <td><input type="checkbox" name="CheckboxLinea2" value="valor2"></td>
  11.         <td><input type="checkbox" name="CheckboxLinea2" value="valor3"></td>
  12.     </tr>
  13. <input type="submit" value="Enviar">
  14. <input type="hidden" value="2" name="TotalFilasRS" id="TotalFilasRS">
  15. </form>

En todo caso, aclara un poco tu pregunta y tal vez pueda ayudarte un poco mas.
Y te recomiendo no mostrar nunca tu cadena de conexión de la BD.

Saludos
  #3 (permalink)  
Antiguo 11/08/2011, 15:37
 
Fecha de Ingreso: mayo-2011
Mensajes: 3
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Guardar registros de checkbox con rs a sql

gracias lo que necesito es guardar los checkbox seleccionados en el RS a SQL eso es todo es mi primer desarrollo y la verdad no se como hacerlo. gracias,.
  #4 (permalink)  
Antiguo 12/08/2011, 08:37
Avatar de Javier01  
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 16 años, 2 meses
Puntos: 31
Respuesta: Guardar registros de checkbox con rs a sql

A ver si puedo dar un poco mas de ayuda.
Intente comentar el código pero deberás acomodar todo según tu BD.

Pagina 1 que muestra los datos:


Código ASP:
Ver original
  1. <%
  2.     ' Suponiendo una tabla llamada TABLA con la estructura:
  3.     ' CAmpoPK_ID    int     PK
  4.     ' CampoChk1     bool
  5.     ' CampoChk2     bool
  6.     ' CampoChk3     bool
  7.    
  8.  
  9. Dim sSQL, iLinea, rs, sCheckedCampo1, sCheckedCampo2, sCheckedCampo3
  10.  
  11. '/*Tomo los campos de la BD*/
  12. sSQL=" SELECT CAmpoPK_ID, CampoChk1, CampoChk2, CampoChk3 FROM TABLA "
  13. set rs = Conex.execute(sSQL)
  14. %>
  15. <form action="SegundoASP.asp" method="post" >
  16. <table>
  17.     <%
  18.     '/*Recorro los campos*/
  19.     Do While Not rs.EOF
  20.         '/*Si el campo esta en true, guardo una variable con la palabra "checked" para luego colocarla en el check y que aparesca tildado*/
  21.         If rs("CampoChk1") = true Then sCheckedCampo1 = "CHECKED"
  22.         If rs("CampoChk2") = true Then sCheckedCampo2 = "CHECKED"
  23.         If rs("CampoChk3") = true Then sCheckedCampo3 = "CHECKED"
  24.         '/*En el value del check pongo el ID o clave primaria de la fila, para luego usarla en el Update*/
  25.     %>
  26.     <tr>
  27.         <td>FILA <%=iLinea%></td>
  28.         <td><input type="checkbox" <%=sCheckedCampo1%>  name="CampoChk1" value="<%=rs("CAmpoPK_ID")%>"></td>
  29.         <td><input type="checkbox" <%=sCheckedCampo2%>  name="CampoChk2" value="<%=rs("CAmpoPK_ID")%>"></td>
  30.         <td><input type="checkbox" <%=sCheckedCampo3%>  name="CampoChk3" value="<%=rs("CAmpoPK_ID")%>"></td>
  31.     </tr>
  32.     <%
  33.         rs.MoveNext
  34.         iLinea = iLinea + 1
  35.     Loop
  36.     %>
  37.  
  38.    
  39. </table>
  40. <input type="submit" value="Enviar">
  41. </form>


Pagina 2 que actualiza:


Código ASP:
Ver original
  1. <%
  2.  
  3. Dim  i, iNumSelectedChk, sSQLUpdate, SelCampoChk1, SelCampoChk2, SelCampoChk3
  4.  
  5. '/*Obtengo la cantidad de checkbox tildados y los recorro. */
  6. 'Primero para el campo CampoChk1, luego para el CampoChk2, etc..*/
  7.  
  8. If FVal(Request("CampoChk1").count)>0 Then
  9.     iNumSelectedChk = FVal(Request("CampoChk1").count)
  10.     For i = 1 To iNumSelectedChk
  11.         '/*guardo cada valor de los checkbox tildado (que es la clave primaria como habiamos dicho) en una variable, y le concateno una coma */
  12.         SelCampoChk1 = SelCampoChk1 & FVal(Request("CampoChk1")(i)) & ","
  13.     Next
  14.     '/* la variable SelCampoChk1 deberia quedar algo como: "1,2,3,4," donde los numeros son el ID o clave primaria de la fila a actualizar. */
  15.     '/* Elimino la ultima coma. */
  16.     SelCampoChk1 = left(SelCampoChk1,len(SelCampoChk1)-1)
  17. End If
  18.  
  19. '/* hago lo mismo que lo anterior para cada campo de la tabla.*/
  20. If FVal(Request("CampoChk2").count)>0 Then
  21.     iNumSelectedChk = FVal(Request("CampoChk2").count)
  22.     For i = 1 To iNumSelectedChk
  23.         SelCampoChk2 = SelCampoChk2 & FVal(Request("CampoChk2")(i)) & ","
  24.     Next
  25.     SelCampoChk2 = left(SelCampoChk2,len(SelCampoChk2)-1)
  26. End If
  27.  
  28. '/* hago lo mismo que lo anterior para cada campo de la tabla.*/
  29. If FVal(Request("CampoChk3").count)>0 Then
  30.     iNumSelectedChk = FVal(Request("CampoChk3").count)
  31.     For i = 1 To iNumSelectedChk
  32.         SelCampoChk3 = SelCampoChk3 & FVal(Request("CampoChk3")(i)) & ","
  33.     Next
  34.     SelCampoChk2 = left(SelCampoChk2,len(SelCampoChk2)-1)
  35. End If
  36.  
  37.  
  38. '/* Por ultimo genero la consulta UPDATE.*/
  39. sSQLUpdate= " "
  40. '/* paso todos los campos a false.*/
  41. sSQLUpdate = sSQLUpdate & " UPDATE TABLA SET CampoChk1=false; "
  42. '/* y dejo solo en true los que estan en la variable que creamos, que son los de los checkbox seleccionados (si es que hay alguno).*/
  43. If FVal(Request("CampoChk1").count) > 0 Then
  44.     sSQLUpdate = sSQLUpdate & " UPDATE TABLA SET CampoChk1=true WHERE CampoPK_ID IN(" & SelCampoChk1 & "); "
  45. End If
  46.  
  47. '/* Lo mismo para cada campo.*/
  48. sSQLUpdate = sSQLUpdate & " UPDATE TABLA SET CampoChk2=false; "
  49. If FVal(Request("CampoChk2").count) > 0 Then
  50.     sSQLUpdate = sSQLUpdate & " UPDATE TABLA SET CampoChk2=true WHERE CampoPK_ID IN(" & SelCampoChk2 & "); "
  51. End If
  52. '/* Lo mismo para cada campo.*/
  53. sSQLUpdate = sSQLUpdate & " UPDATE TABLA SET CampoChk3=false; "
  54. If FVal(Request("CampoChk3").count) > 0 Then
  55.     sSQLUpdate = sSQLUpdate & " UPDATE TABLA SET CampoChk3=true WHERE CampoPK_ID IN(" & SelCampoChk3 & "); "
  56. End If
  57. '/* Ejecuto las consultas.*/
  58. Conex.execute(sSQLUpdate)
  59.  
  60. %>

El código puede que tenga errores porque no tengo esa estructura de tabla y por lo tanto no lo probé

Si tienes algun problema vuelve y pregunta

Saludos

Etiquetas: asp, checkbox, fecha, registros, sql
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 01:04.