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

Recibir y guardar checkboxs seleccionados

Estas en el tema de Recibir y guardar checkboxs seleccionados en el foro de ASP Clásico en Foros del Web. hola amigos me urge saber como puedo obtener todos los checkboxs que fueron seleccionados en una pagina y mandarlos a guardar a la BD son ...
  #1 (permalink)  
Antiguo 26/03/2008, 13:12
Avatar de omegafunky  
Fecha de Ingreso: diciembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 3.534
Antigüedad: 20 años, 5 meses
Puntos: 33
Exclamación Recibir y guardar checkboxs seleccionados

hola amigos me urge saber como puedo obtener todos los checkboxs que fueron seleccionados en una pagina y mandarlos a guardar a la BD son como 40 checkboxs los que voy a manejar, los creo con un for a_1, b_1, c_1 y asi hasta c_13, de la misma forma cree una base de datos con todos esos campos desde a_1, b_1, c_1 hasta c_13, pueden ayudarme a como obtener los seleccionados y mandarlos a guaradar en su campo correspondiente? saludos
__________________
Canon 7D | Canon 5D Mark II | 35mm 1.4L | 135mm 2L | Pocket Wizard Plus III
  #2 (permalink)  
Antiguo 26/03/2008, 13:25
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Recibir y guardar checkboxs seleccionados

No les pongas el índice al nombre, llámalos a todos con el mismo nombre y cuando los recibas con un Request("checks") recibiras una cadena con los value de cada uno separado por comas; entonces solo tienes que hacer un SPLIT para separarlos cada uno de ellos y así poder guardarlos.

Aunque tengo la duda con eso de "mandarlos a guaradar en su campo correspondiente", ¿en tu tabla tienes un campo por cada check?, si es así como lo tienes se puede hacer, solo haz que coincida algo en el nombre del check (pe. el índice) con algo del nombre del campo
  #3 (permalink)  
Antiguo 26/03/2008, 13:39
Avatar de omegafunky  
Fecha de Ingreso: diciembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 3.534
Antigüedad: 20 años, 5 meses
Puntos: 33
Re: Recibir y guardar checkboxs seleccionados

podrias darme una ejemplo? si mira si mi check en value tiene c_2 el campo de mi tabla se llama de la misma forma osea k son 39 checks y en mi tabla igual puse 39 campos cada uno con el nombre del check del cual va a guardar el valor, bueno esa logica use yo porque no soy muy programador que digamos y apenas estoy empezando en este lio jeje como vez, esta bien mi idea o se puede hacer de otra forma mejor? dame ejemplos de codigo para que me guie y le vaya moviendo, gracias
__________________
Canon 7D | Canon 5D Mark II | 35mm 1.4L | 135mm 2L | Pocket Wizard Plus III
  #4 (permalink)  
Antiguo 26/03/2008, 13:58
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Recibir y guardar checkboxs seleccionados

Bueno

Copia, pega y ejecuta este ejemplo. Lo revisas y preguntas que dudas te quedan.

Código:
<%
if request("boton")<>"" Then 'esto es para distinguir la primera vez que se carga página de cuando se haya ejecutado el formulario
   sql = "Insert into tabla (campos) values (valores)"
	 Campos = ""
	 Valores= "" 
   for each control in request.QueryString
       for indice=1 to request.QueryString(control).count
			     if control <> "boton" Then 
              Campos = Campos & control & ","
		          Valores= Valores & "'" & request.QueryString(control)(indice) &"',"
					 End if 
       next
   next	 
	 Campos = Left(Campos, Len(Campos)-1)
	 Valores= Left(Valores, Len(Valores)-1)
	 sql = Replace(sql, "campos", Campos)
	 sql = Replace(sql, "valores", Valores)
	 Response.write sql
   Response.End   
End If

%>
<html>
<body>
<form action="" method=get>
<%For i=1 to 39%>
   <input type="checkbox" value="Valor<%=i%>" name="c_<%=i%>">
<%Next%>
	 <input type="submit" name="boton" value="Enviar">
</form>
</body>
</html>
Saludos
  #5 (permalink)  
Antiguo 27/03/2008, 09:42
Avatar de omegafunky  
Fecha de Ingreso: diciembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 3.534
Antigüedad: 20 años, 5 meses
Puntos: 33
Re: Recibir y guardar checkboxs seleccionados

gracias amigo, voy a probarlo y ya te cuento como me fue
__________________
Canon 7D | Canon 5D Mark II | 35mm 1.4L | 135mm 2L | Pocket Wizard Plus III
  #6 (permalink)  
Antiguo 27/03/2008, 13:25
Avatar de omegafunky  
Fecha de Ingreso: diciembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 3.534
Antigüedad: 20 años, 5 meses
Puntos: 33
Exclamación Re: Recibir y guardar checkboxs seleccionados

Bueno me ando liando con el codigo que me pusiste amigo espero puedas darme una manito mira uso 2 paginas y al procesar la info imprimo los valores para comprobar que salgan y nada incluso no los manda a guardar, ojala puedas ayudarme, saludos

p8.asp
Código PHP:
          <%
                
dim connrsi
                Set conn 
Server.CreateObject("ADODB.Connection")
                
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="server.mappath("base.mdb")
                
                
SQL "SELECT id_cat_espec, nombre FROM cat_especialidades ORDER BY nombre"
                
Set rs conn.Execute(SQL)
                
0
                
While Not rs.EOF
                i 
1
                
%>            
            
            
          <
tr>
            <
td width="270" class="borde_sky_bottom_right"><%=i&".- "&rs("nombre")%></td>
            <
td width="120" align="center" class="borde_sky_bottom_right"><input type="checkbox" value="Si" name="a_<%=rs("id_cat_espec")%>" /></td>
            <
td width="120" align="center" class="borde_sky_bottom_right"><input type="checkbox" value="Si" name="b_<%=rs("id_cat_espec")%>" /></td>
            <
td width="120" align="center" class="borde_sky_bottom"><input type="checkbox" value="Si" name="c_<%=rs("id_cat_espec")%>" /></td>
          </
tr>
          
          
          
          <%
                
rs.MoveNext
                Wend
                rs
.Close
            
%> 
p8_pro.asp
Código PHP:
<%
    
Dim conn,dbCamposValores 
    Set conn 
Server.CreateObject("ADODB.Connection"
    
Set db Server.CreateObject("ADODB.Recordset"
    
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; " "Dbq=" Server.MapPath("base.mdb"

        if 
request("boton")<>"" Then 'esto es para distinguir la primera vez que se carga página de cuando se haya ejecutado el formulario
         
            sql = "INSERT INTO etapa_esp (campos) VALUES (valores)"
            Campos = ""
            Valores= "" 
           for each control in request.QueryString
               for indice=1 to request.QueryString(control).count
                         if control <> "boton" Then 
                            Campos = Campos & control & ","
                            Valores= Valores & "'" & request.QueryString(control)(indice) &"
,"
                         End if 
               next
           next     
            Campos = Left(Campos, Len(Campos)-1)
            Valores= Left(Valores, Len(Valores)-1)
        
            sql = Replace(sql, "
campos", Campos)
            sql = Replace(sql, "
valores", Valores)
            conn.Execute(sql)
            conn.Close()
        
            Response.write sql
            Response.End   
        End If
    Response.write ("
Campos"&Campos&"<br>")
    Response.write ("
Valores"&Valores&"<br>")

%> 
__________________
Canon 7D | Canon 5D Mark II | 35mm 1.4L | 135mm 2L | Pocket Wizard Plus III
  #7 (permalink)  
Antiguo 27/03/2008, 14:05
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Recibir y guardar checkboxs seleccionados

Bueno si no te imprime nada es por que yo usé un Button (submit) llamado "boton" y lo usé para que la primera vez que se entrara a esa página no hiciera nada, supongo que en el action de la primer página tienes "p8_pro.asp" y no llamas "boton" al submit, entonces esa validación (el IF: if request("boton")<>"" Then) no tiene sentido, quítala.
  #8 (permalink)  
Antiguo 27/03/2008, 14:35
Avatar de omegafunky  
Fecha de Ingreso: diciembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 3.534
Antigüedad: 20 años, 5 meses
Puntos: 33
Exclamación Re: Recibir y guardar checkboxs seleccionados

ahora si que mi boton se llama boton, te paso el codigo checa
Código PHP:
<input type="image" src="img/cover_r4_c3.jpg" name="boton" id="boton"></td
__________________
Canon 7D | Canon 5D Mark II | 35mm 1.4L | 135mm 2L | Pocket Wizard Plus III
  #9 (permalink)  
Antiguo 27/03/2008, 15:17
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Recibir y guardar checkboxs seleccionados

jeje, ok, tienes una imagen que se llama botón, pero yo pregunto por su value, así que no nos sirve.

Solo quita ese If del código y ya te debería de funcionar.
  #10 (permalink)  
Antiguo 27/03/2008, 15:52
Avatar de omegafunky  
Fecha de Ingreso: diciembre-2003
Ubicación: Tabasco, Mexico
Mensajes: 3.534
Antigüedad: 20 años, 5 meses
Puntos: 33
Re: Recibir y guardar checkboxs seleccionados

gracias por la ayuda amigo y disculpa si soy muy pregunto pero es que la neta hay cosas que todavia no le entiendo y estoy verde en programacion y pues no tengo logica de programador, apenas estoy tratando de entenderle a esto jeje oye pero y k hago con esta perte de codigo donde igual me pusiste "boton" la quito o la dejo?

Código PHP:
    if control <> "boton" Then 
         Campos 
Campos control ","
         
ValoresValores "'" request.QueryString(control)(indice) &","
     
End if 
fijate que le quite el if que me dijiste el primero y me marco esto:

Error Type:
Microsoft VBScript runtime (0x800A0005)
Invalid procedure call or argument: 'Left'
/it/p8_pro.asp, line 20
__________________
Canon 7D | Canon 5D Mark II | 35mm 1.4L | 135mm 2L | Pocket Wizard Plus III
  #11 (permalink)  
Antiguo 27/03/2008, 18:07
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Recibir y guardar checkboxs seleccionados

A ver, vamos por partes.

Si en el ejemplo que te puse, colocas antes de el código que pones esta linea:

response.write control & " = " & request.QueryString(control)(indice)&"<br>"

verás los nombres y el valor relacionado de cada parámetro. Verás que el último parámetro es precisamente el botón y esas lineas son para que dicho parámetro no lo agregará. Fue una solución rápida ya que solo tenia un control que no era un checkbox.

No se cuántos parámetros tu mandas y cuántos de ellos no son checkbox, pudieras implementar algún método para discriminarlos y así evitar que se concatenen a la consulta. No se, una cadena con los nombre de los que no son Check's y un IF preguntando que el nombre del control NO ESTE en esa cadena (con el InStr).

Perdón por no hacerte un ejemplo un poco más elaborado, pero justo ahorita voy un poco apurado. Mañana será otro día

Saludos
  #12 (permalink)  
Antiguo 28/03/2008, 05:10
Avatar de i_e_s27  
Fecha de Ingreso: marzo-2008
Ubicación: En mi casa
Mensajes: 208
Antigüedad: 16 años, 2 meses
Puntos: 5
Re: Recibir y guardar checkboxs seleccionados

Creo que esto es lo que necesitas, no lo he probado, no se si tiene errores de sintaxis, pero te va a guiar en como obtener tu codigo...

Esto iria en la pagina que recibe los datos del Form:

Código PHP:
Dim conn
Dimm db

Set conn 
Server.CreateObject("ADODB.Connection"
Set db Server.CreateObject("ADODB.Recordset"
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; " "Dbq=" Server.MapPath("base.mdb")

Dimm Array1
Dimm Array2
Dimm Array3

Array1 
Split ("a_1,a_2,a_3,a_4,a_5,a_6,a_7,a_8,a_9,a_10,a_11,a_12,a_13"",", -11)
Array2 Split ("b_1,b_2,b_3,b_4,b_5,b_6,b_7,b_8,b_9,b_10,b_11,b_12,b_13"",", -11)
Array3 Split ("c_1,c_2,c_3,c_4,c_5,c_6,c_7,c_8,c_9,c_10,c_11,c_12,c_13"",", -11)

Dimm i
Dimm sql
For 0 to uBound(Array1)
    
sql "INSERT INTO etapa_esp " Array1(i) & " VALUES " Request.Form(Array1(i))
    
conn.Execute(sql)
Next
For 0 to uBound(Array2)
    
sql "INSERT INTO etapa_esp " Array2(i) & " VALUES " Request.Form(Array2(i))
    
conn.Execute(sql)
Next
For 0 to uBound(Array3)
    
sql "INSERT INTO etapa_esp " Array3(i) & " VALUES " Request.Form(Array3(i))
    
conn.Execute(sql)
Next

conn
.Close
Set conn 
Nothing 
  #13 (permalink)  
Antiguo 28/03/2008, 08:17
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Re: Recibir y guardar checkboxs seleccionados

mmmm

independientemente del error de sintaxis, ahí estas insertando, i_e_s27 , un registro por cada campo, y definitivamente eso no es lo que se debe hacer.

Solo debes, omegafunky, de estudiar con cuidado el ejemplo que te puse, analizarlo y entender el por que de cada cosa. Se que no eres programador, pero como Ing. en Sistemas no debe de costarte mucho trabajo
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:40.