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

Checkbox validador

Estas en el tema de Checkbox validador en el foro de ASP Clásico en Foros del Web. Saludos amigos del foro yo soy nuevo en esto y necesito validar unos mensajes que se encuentran en una base de dato con checkbox para ...

  #1 (permalink)  
Antiguo 19/05/2006, 08:12
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 19 años
Puntos: 1
De acuerdo Checkbox validador

Saludos amigos del foro yo soy nuevo en esto y necesito validar unos mensajes que se encuentran en una base de dato con checkbox para luego mostarlos o no.
tengo este codigo
Código:
<table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr> 
     <td width="125" height="21" align="center" valign="middle"     MBRE</td>
                        <td width="125" align="center" valign="middle" class="tahoma12b"> 
                          E-MAIL</td>
                        <td width="160" align="center" valign="middle" class="tahoma12b">MENSAJE</td>
                        <td width="80" align="center" valign="middle" class="tahoma12b">ACT/DESA</td>
                        <td width="60" rowspan="4" align="center" valign="middle"><a href="form_modimensajemu.asp?msg=<%=rs.Fields("texto").value%>"><img src="imgs/ico_edit.gif" alt="Modficar Propiedad" width="32" height="32" border="0"></a></td>
                        <td width="60" rowspan="4" align="center" valign="middle"><a href="conf_deletems.asp?msg=<%=rs.Fields("texto").value%>"><img src="imgs/ico_delete.gif" alt="Eliminar Propiedad" width="32" height="32" border="0"></a></td>
                        <td width="2">&nbsp;</td>
                      </tr>
                      <tr> 
                        <td height="1"></td>
                        <td rowspan="2" align="center" valign="middle" class="tahoma11b"><%=rs.Fields("mail").value%></td>
                        <td rowspan="3" align="center" valign="middle" class="tahoma11b"><%=rs.Fields("texto").value%></td>
                        <td rowspan="3" align="center" valign="middle">
		<%if rs("valor") = 1 then
		varCheck = "Checked"
		else
		varCheck = ""
		end if
		%>
<input name="checkbox" type="checkbox" id="checkbox" value="<%=rs("valor")%>" <%=varCheck%>>
                        
						</td>
                        <td></td>
                      </tr>
                      <tr> 
                        <td rowspan="2" align="center" valign="middle" class="tahoma11b"><%=rs.Fields("nombre").value%> </td>
                        <td height="56">&nbsp;</td>
                      </tr>
                      <tr> 
                        <td height="1"></td>
                        <td></td>
                      </tr>
                      <tr> 
                        <td height="0"></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                      </tr>
                    </table>
Ahora el problema que tengo que esto es solo para mostrar cual esta activado.
Pero a la ves quiero que cuando lo desactive o active otro, este tome su valor correspondiente en la base de dato, mi base de datos es asi
nombre mail texto valor
lero [email protected] blabla 0
Nemo [email protected] blablabla 1

y pueden ser muchos mensajes mas, pero quiero que cuando marque el checbox en la pagina este tome el valor 1 en la base de datos y vise versa.
Si alguien me aclara la duda por favor mcuahs gracias
  #2 (permalink)  
Antiguo 19/05/2006, 11:36
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 4 meses
Puntos: 7
Código:
<%if rs("valor") = 1 then
		varCheck = "checked=""checked"""
		else
		varCheck = ""
		end if
%>

<input name="checkbox" type="checkbox" id="checkbox" value="<%=rs("valor")%>" <%=varCheck%> />
cuando la pagina que recibe el formulario puedes comprobar si la variable checkbox (el name del INPUT) esta definida:

Código:
if request("checkbox") <> "" then 
     ' Viene con lo cual la guardamos con el valor 1
else
    ' No esta definida con lo cual le damos el valor 0
end if
Mas elegante

blCheckbox = request("checkbox") <> ""


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #3 (permalink)  
Antiguo 19/05/2006, 12:30
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 19 años
Puntos: 1
Muchas gracias y mucho gusto
Mira ahora tengo esto

Código:
<td width="139" height="146" valign="top"  bgcolor="#000000" class="comicsanz"> 
<marquee behavior="Scroll" direction="Up" height="146" scrollamount="1" scrolldelay="30" onMouseOver="this.stop()" onMouseOut="this.start()">
<%
Do While Not rs1.EOF and tope1 < max
 i = 0 
 Maximo1 = 210
parrafo=rs1("texto")
If len ( parrafo ) > Maximo1 Then 
 parrafo2 = Split ( parrafo, " " ) 
parrafo = "" 
Do While len ( parrafo ) + len ( parrafo2 ( i ) ) < Maximo1 
parrafo = parrafo & " " & parrafo2 ( i ) 
 i = i + 1 
Loop 
End if %>
<% Do while rs1.EOF
if rs1("valor") = 1 then
%>
<%=rs1.Fields("nombre").value%> <br>
                  <%=rs1.Fields("mail").value%><br>
                  <%Response.Write(parrafo)%>
                  <br>
                  <br>
                  <br>
                  <%
      	tope1= tope1 +1
      	rs1.MoveNext
      	Loop
	 %>
 </marquee> </td>
Que es donde muestro los mensajes, ahora para que aparescan segun el valor que tengo eln la base de datos los tengo que llamar asi
Código:
<% Do while rs1.EOF
if rs1("valor") = 1 then
%>
<%if rs(valor) = 1 then
   <%=rs1.Fields("nombre").value%> <br>
                  <%=rs1.Fields("mail").value%><br>
                  <%Response.Write(parrafo)%>
end if%>
  <%
      	tope1= tope1 +1
      	rs1.MoveNext
      	Loop
	 %>
o falta algo o esta mal ubicado
  #4 (permalink)  
Antiguo 19/05/2006, 12:53
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 4 meses
Puntos: 7
Lo malo de ASP es que True y False no son los valores 1 y 0 sino -1 y 0

No se si es el error que te produce pero donde uses

if rs(valor) = 1 then

usa

if rs(valor) = 1 or rs(valor) = -1 then

Otra solucion es

blCheckbox = CInt(request("checkbox") <> "") * -1

De todas formas:
Código:
<% Do while rs1.EOF
if rs1("valor") = 1 then 'Esto no tiene su end if y se repite ¿¿??
%>
<%if rs(valor) = 1 then
   <%=rs1.Fields("nombre").value%> <br>
                  <%=rs1.Fields("mail").value%><br>
                  <%Response.Write(parrafo)%>
end if%>
  <%
      	tope1= tope1 +1
      	rs1.MoveNext
      	Loop
	 %>


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #5 (permalink)  
Antiguo 19/05/2006, 13:06
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 19 años
Puntos: 1
eso es lo que no estoy seguro, si hay que ponerle un end if, si saves de alguna forma mejor de mostrar los mensajes segunel valo en la base de dato bien venido sea.
  #6 (permalink)  
Antiguo 19/05/2006, 13:14
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 4 meses
Puntos: 7
Con el Select Case

Código:
<%
Do while rs1.EOF
   Select Case rs1("valor") ' En tu ejemplo es rs(valor), no es el mismo recordset
    Case 1 
            response.write(rs1.Fields("nombre").value & "<br />" & vbNewLine)
            response.write(rs1.Fields("mail").value & "<br />" & vbNewLine)
            Response.Write(parrafo & vbNewLine)
   Case Else
            ' Aqui puedes poner lo que quieres que salga cuando valor es 0
   End Select 
      	tope1= tope1 +1
      	rs1.MoveNext
      	Loop
 %>
¿Estas seguro que tienes un campo llamado "valor"?



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #7 (permalink)  
Antiguo 19/05/2006, 14:07
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 19 años
Puntos: 1
Disculpa eso me pasa por no poner atencios estoy escribiendo 2 veses la misma cosas, respondiendo a tu pregunta si tengo un campo valor y es rs1(valor) el rs(valor esta demas)
Bueno en tu ejemplo del Case en la parte donde se hace 0 es necesario poner algo o no ?
  #8 (permalink)  
Antiguo 19/05/2006, 14:12
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
No es necesario evaluar un booleano de esta manera:

if rs(valor) = 1 then

Pues el if evalua intrinsecamente un booleano

if rs(valor) then

Si es que el valor en tu base de datos es un booleano, de lo contrario, hazle un cast

if cbool(rs("valor")) then

Nota: Ademas si estas discriminando un valor del recordset, es mejor que no lo traigas, podrias modificar tu sentencia SQL para no traer los campos suyo valor sea = a tu criterio a discriminar.


Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 19/05/2006, 14:19
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 19 años
Puntos: 1
Nop la mentable mente no me sirve con Case ya que en la base de datos en el campo valor solo tengo 0 y 1 y al maceno muchos mensajes y con case tendria que tomar cada uno de ellos esta buscando algo como un for pero no estoy seguro, lo que quiero es que si en la base de datos el valor es 0 el mensaje no aparesca y si el valor en la base de datos es 1 el mensaje aparesca.
Ahora para mostrar todos los mensajes estoy ocupando esto
Código:
    <%
         Do While Not rs1.EOF and tope1 < max
	 i = 0 
              Maximo1 = 210
              parrafo=rs1("texto")
         If len ( parrafo ) > Maximo1 Then 
                    parrafo2 = Split ( parrafo, " " ) 
                    parrafo = "" 
                    Do While len ( parrafo ) + len ( parrafo2 ( i ) ) < Maximo1 
                       parrafo = parrafo & " " & parrafo2 ( i ) 
                       i = i + 1 
                    Loop 
          End if %>
                  <%=rs1.Fields("nombre").value%> <br>
                  <%=rs1.Fields("mail").value%><br>
                  <%Response.Write(parrafo)%>
                  <br>
                  <br>
                  <br>
                  <%
      	       tope1= tope1 +1
      	       rs1.MoveNext
      	       Loop
	     %>
Espero me entiendas avese soy un poco enredado para explicarme lo siento.

  #10 (permalink)  
Antiguo 19/05/2006, 14:31
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Cita:
lo que quiero es que si en la base de datos el valor es 0 el mensaje no aparesca y si el valor en la base de datos es 1 el mensaje aparesca.
Cita:
Nota: Ademas si estas discriminando un valor del recordset, es mejor que no lo traigas, podrias modificar tu sentencia SQL para no traer los campos suyo valor sea = a tu criterio a discriminar.
SELECT campos FROM tabla WHERE campo_booleano = 1
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #11 (permalink)  
Antiguo 19/05/2006, 15:02
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 19 años
Puntos: 1
Muchas gracias por esa correccion cuando me bloque no pienso bien,
pero aun tengo problemas para poder almacenar los valores, en realidad quiero estar seguro que me los cambie cuando los selecciono en el checkbox
  #12 (permalink)  
Antiguo 19/05/2006, 15:32
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Código:
if len(Request.Form("nombre_del_checkbox")) > 0 then
   valor = true
else
   valor = false
end if
Y utilizas valor en tu sentencia SQL que inserta

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #13 (permalink)  
Antiguo 19/05/2006, 15:36
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 19 años
Puntos: 1
este es el codigo que estoy ocupando para que me muestre los checkbox activado o desactivados segun el caso y el valor que tengan en la base de datos (ya sea 0 o 1)
Código:
<table width="100%" border="0" cellpadding="0" cellspacing="0">
                      <!--DWLayoutTable-->
                      <tr> 
                        <td width="125" height="21" align="center" valign="middle" class="tahoma12b">NOMBRE</td>
                        <td width="125" align="center" valign="middle" class="tahoma12b"> 
                          E-MAIL</td>
                        <td width="160" align="center" valign="middle" class="tahoma12b">MENSAJE</td>
                        <td width="80" align="center" valign="middle" class="tahoma12b">ACT/DESA</td>
                        <td width="60" rowspan="4" align="center" valign="middle"><a href="form_modimensajemu.asp?msg=<%=rs.Fields("texto").value%>"><img src="imgs/ico_edit.gif" alt="Modficar Propiedad" width="32" height="32" border="0"></a></td>
                        <td width="60" rowspan="4" align="center" valign="middle"><a href="conf_deletems.asp?msg=<%=rs.Fields("texto").value%>"><img src="imgs/ico_delete.gif" alt="Eliminar Propiedad" width="32" height="32" border="0"></a></td>
                        <td width="2">&nbsp;</td>
                      </tr>
                      <tr> 
                        <td height="1"></td>
                        <td rowspan="2" align="center" valign="middle" class="tahoma11b"><%=rs.Fields("mail").value%></td>
                        <td rowspan="3" align="center" valign="middle" class="tahoma11b"><%=rs.Fields("texto").value%></td>
                        <td rowspan="3" align="center" valign="middle">
						<%if rs("valor") = 1 then
						varCheck = "Checked"
						else
						varCheck = ""
						end if
						%>
						<input name="checkbox" type="checkbox" id="checkbox" value="<%=rs("valor")%>" <%=varCheck%>>
                         
						</td>
                        <td></td>
                      </tr>
                      <tr> 
                        <td rowspan="2" align="center" valign="middle" class="tahoma11b"><%=rs.Fields("nombre").value%> </td>
                        <td height="56">&nbsp;</td>
                      </tr>
                      <tr> 
                        <td height="1"></td>
                        <td></td>
                      </tr>
                      <tr> 
                        <td height="0"></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                      </tr>
                    </table>
  #14 (permalink)  
Antiguo 19/05/2006, 15:37
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 19 años
Puntos: 1
esta es la sentencias
de enlace con la base de datos
Código:
<%
Session.LCID = 1034

Dim con, rs, SQL

set con=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")

con.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("mes/galerias/galerias.mdb")&";"
SQL="SELECT * FROM pizarra"

rs.Open SQL, con, 1, 2
%>
  #15 (permalink)  
Antiguo 19/05/2006, 15:38
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 19 años
Puntos: 1
Ahora el codigo que tu me dices se coloca en la pagian reseptora del form o en el form mismo?
  #16 (permalink)  
Antiguo 19/05/2006, 15:59
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 19 años
Puntos: 1
se supone que este es el codigo con el cual deveria almacenar pero no pasa nada
Código:
<%
if len(Request.Form("checkbox")) > 0 then
   valor = true
else
   valor = false
end if
      	  
     set con = Server.CreateObject("ADODB.Connection")
     set rs = Server.CreateObject("ADODB.RecordSet")

      con.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("mes/galerias/galerias.mdb")
      SQL = "SELECT * FROM pizarra where valor like '%"&valor&"%';"
      
	 rs.Open SQL,con,3,3
	 
	 if not rs.eof then 
	  rs("valor") = valor 
	  rs.update
	
      rs.Close
      set rs=nothing
      set con=nothing

      Response.Redirect("modificadormural.asp")
	  
	else Response.Redirect("error.asp")
	   
	  end if
%>
  #17 (permalink)  
Antiguo 22/05/2006, 03:00
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 4 meses
Puntos: 7
¿Y no te seria mas facil asi?

Código:
<%

   valor = len(Request.Form("checkbox")) > 0

      	  
     set con = Server.CreateObject("ADODB.Connection")
     set rs = Server.CreateObject("ADODB.RecordSet")

      con.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("mes/galerias/galerias.mdb")
      SQL = "UPDATE pizarra SET valor = "  & valor & " where valor like '%"&valor&"%';"
      
     on error resume next
     con.execute(SQL)
     if err.number <> 0 then
           response.write("Error: " & err.description)
           response.flush()
     else
           con.close()
           set con = nothing
           on error goto 0
           Response.Redirect("modificadormural.asp")
     end if

%>


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #18 (permalink)  
Antiguo 22/05/2006, 09:30
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 19 años
Puntos: 1
en realidad eso no me alluda de mucho, ya que tengo que ingrsar el valor 0 o el valor 1 en la base de datos para que despues el mensaje se vea.
  #19 (permalink)  
Antiguo 22/05/2006, 09:52
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 4 meses
Puntos: 7
Código:
<%

   valor = CInt(len(Request.Form("checkbox")) > 0) * -1

      	  
     set con = Server.CreateObject("ADODB.Connection")
     set rs = Server.CreateObject("ADODB.RecordSet")

      con.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("mes/galerias/galerias.mdb")
      SQL = "UPDATE pizarra SET valor = "  & valor & " where valor like '%"&valor&"%';"
      
     on error resume next
     con.execute(SQL)
     if err.number <> 0 then
           response.write("Error: " & err.description)
           response.flush()
     else
           con.close()
           set con = nothing
           on error goto 0
           Response.Redirect("modificadormural.asp")
     end if

%>


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #20 (permalink)  
Antiguo 22/05/2006, 11:35
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 19 años
Puntos: 1
ya encontre el problema ahora me falta solucionarlo, lo que susece es que el checkbox que no esta selecionado no envia ningun valor.
Como corrijo eso?
  #21 (permalink)  
Antiguo 22/05/2006, 11:40
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98


Eso lo muestran los códigos propuestos desde el inicio.
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #22 (permalink)  
Antiguo 22/05/2006, 11:59
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 19 años
Puntos: 1
u_goldman querido instructor, todo lo anterior esta bien y me a servido de mucho, pero lo que me ocurre ahora es que cuando, pido el valor del checkbox que no esta seleccionado , no me da nada , me da vacio, osea si eso lo trato de almacenar en la base de datos se provoca un error por que no hay valor. Te envio el codigo
  #23 (permalink)  
Antiguo 22/05/2006, 12:02
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 19 años
Puntos: 1
Este es elcodigo para la pagina que me muestra los checkbox activados y desactivados.

Código:
<%if rs("valor") = 1 then
varCheck = "Checked"
else
varCheck = ""
end if
%>
<input name="checkbox" type="checkbox" id="checkbox" value="<%=rs("valor")%>" <%=varCheck%>>
Este otro es el codigo de la pagina que esta pidiendo los valores del checkbox

Código:
<%
for each valor in Request.Form("checkbox")
Response.write(valor)
 next 
%>
  #24 (permalink)  
Antiguo 22/05/2006, 12:10
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
A ver karmish, vamos por partes.

Un checkbox siempre llegará vacio si no está seleccionado, porque quiere decir que no has enviado ningún valor.

El código anterior, asigna un valor a una variable booleana si llega algún valor(si es checxbox es seleccionado).

Código:
seHaEnviado = false
if len(Request.Form("nombre_de_tu_checkbox")) > 0 then
   seHaEnviado = true
else
   seHaEnviado = false
end if
Ahora, dependiendo del tipo de dato que tengas para ese campo en tu base de datos, será la forma como se debe trabajar. Si es un campo booleano, le puedes pasar directamente el valor, si es un numerico, pues tal vez necesites modificar esa condición para que en lugar de ser true y false, le envíes 1 y 0 respectivamente.
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #25 (permalink)  
Antiguo 22/05/2006, 12:25
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 19 años
Puntos: 1
Ok deacuerdo mis valores en la base de datos son numericos, ahora para poder, solucionar el problema tendria que quedar asi??????????????
Código:
seHaEnviado = 0
if len(Request.Form("nombre_de_tu_checkbox")) > 0 then
   seHaEnviado = 1
else
   seHaEnviado = 0
end if

Última edición por karmish; 22/05/2006 a las 14:08
  #26 (permalink)  
Antiguo 22/05/2006, 12:49
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 4 meses
Puntos: 7
Rayos!!

valor = CInt(len(Request.Form("checkbox")) > 0) * -1

Esto, tal cual, te da el valor 0 si no existe el valor (o sea, no se ha seleccionado) o 1 (viene cualquier valor, o sea, se ha seleccionado)

Es asi de simple, de verdad. No tiene mas. Es muy simple. Pruebalo.



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #27 (permalink)  
Antiguo 22/05/2006, 14:03
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 19 años
Puntos: 1
Estimado Tammander con este codigo

Código:
<%
valor = CInt(len(Request.Form("checkbox")) > 0) * -1

set con = Server.CreateObject("ADODB.Connection")
     set rs = Server.CreateObject("ADODB.RecordSet")

      con.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("mes/galerias/galerias.mdb")
      SQL = "UPDATE pizarra SET valor = "  & valor & " where valor like '%"&valor&"%';"
      
     on error resume next
     con.execute(SQL)
     if err.number <> 0 then
           response.write("Error: " & err.description)
           response.flush()
     else
           con.close()
           set con = nothing
           on error goto 0
           Response.Redirect("modificadormural.asp")
     end if
%>
no me actualiza nada ne la base de datos
  #28 (permalink)  
Antiguo 22/05/2006, 14:22
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Vamos, vamos...

SQL = "UPDATE pizarra SET valor = " & valor & " where valor like '%"&valor&"%';"

Vuelvo y pregunto: Qué tipo de dato tiene valor en tu tabla????

Por un lado le dices: Actualiza pizarra, establece valor = una_variable_numerica DONDE valor COMO 'un string

Primera observación: Es numérico ese campo, es booleano o es un string?
Segunda observacón: NO utilices el operador LIKE, para este caso el operador lógico que se debe emplear es =


Finalmente, la lógica de ese query está mal....

valor = 1
actualiza el campo, establece el valor = 1 DONDE valor = 1

Una tarea que nada más se ejecutará por ejecutarse...

En lugar de postear todo el código, piensa en la estructura de esa tabla y paso a paso que quieres lograr, hazte un algoritmo, ve todos los posibles tipos de datos que tendrás y como se deben manejar.

Conclusión: Siempre es mejor antes de tirar líneas de código, pensar cuál será la lógica de la aplicación.
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #29 (permalink)  
Antiguo 22/05/2006, 14:47
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 19 años
Puntos: 1
Los valores dentro de la tabla pizarra en el campo valor son de 0 y 1
  #30 (permalink)  
Antiguo 22/05/2006, 14:49
Avatar de karmish  
Fecha de Ingreso: mayo-2006
Mensajes: 272
Antigüedad: 19 años
Puntos: 1
son de tipo texto
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 15:21.