Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

crucifier

assim que selecionar o checkbox ele da um update no bd mysql

Recommended Posts

hey mans...então...estou fazendo um sistema de portfolio...na hora do cadastro..tem uma opção...deseja que o site apareça entre os sites desenvolvidos?e tem um botao de radio com sim e outro com não...daih a pessoa seleciona...e na pagina de consulta...aparece um checkbox...se a pessoa na hora de cadastrar o site ela tiver selecionado o não...o checkbox nao aparece selecionado...se ela cadastrou como sim...aparece selecionado...então minha duvida eh a seguinte...se por exemplo...não ta selecionado o checkbox...ou seja...está como não no Bd(mysql)...então...assim que ela clicar no checkbox..vai alterar no banco de dados e deixar como sim...mesma coisa se estiver selecionado o checkbox...pessoa clica nele e ele altera no bd e deixa lá como não...entenderam minha duvida??resumindo...clikei no checkbox que está selecionado...ele altera no bd de "sim" para "não"...clikei no checkbox que não está selecionado...ele alterá no bd de "não" para "sim"...entenderam???se tiver com uma solução +/- igual a minha por favor deixem o url então, para nao precisar explicar de novo...obrigado gente...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para isso você deverá usar JavaScript para submeter esse form.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, acho melhor usar um link ao invéz do CheckBox. Fica até mais simples. como eu fiz nesse sistema de enquete de exemplo: Sistema de Enquetes..

Compartilhar este post


Link para o post
Compartilhar em outros sites

O trecho que exibe as enquetes no Admin é esse:

		While Not Enquete.EOF%>
<%=Enquete("Pergunta")%> <a href="?Acao=3&Definir=1&ID_Enquete=<%=Enquete("ID_Pergunta")%>#Ancora">|- Editar -|</a> <a href="?Acao=3&Definir=2&ID_Enquete=<%=Enquete("ID_Pergunta")%>">|- Excluir -|</a> <a href="?Acao=3&Definir=3&ID_Enquete=<%=Enquete("ID_Pergunta")%>"><%If Enquete("Exibir") = False Then%>|- Liberar -|<%Else%>|- Ocultar -|<%End If%></a><br>
<%		Enquete.MoveNext
	Wend%>

Repare no IF que escreve Liberar ou Ocultar, ele testa no BD qual o "estado" do campo tipo Booleano. Ao clicar no link é disparada a seguinte SUB:

Sub Aprovar()
ID_Enquete = FunTrataSQL(Request("ID_Enquete"))
If ID_Enquete = "" OR IsNumeric(ID_Enquete) = False Then
	Response.Redirect("Administrar.asp")
End If
' Libera ou não para votação a Enquete
Call SubAbreConn()
Set RSAprova = Server.CreateObject("ADODB.RecordSet")
SQL = "Select * From Perguntas Where ID_Pergunta = "& ID_Enquete &";"
RSAprova.Open SQL,ObjConn,3,2
If Not RSAprova.EOF Then
	While Not RSAprova.EOF
		If RSAprova("Exibir") = False Then 
			RSAprova("Exibir") = True
		Else
			RSAprova("Exibir") = False
		End If
		RSAprova.Update
		RSAprova.MoveNext
	Wend
End If
RSAprova.Close
Set RSAprova = Nothing
Call SubFechaConn()

Response.Redirect("?Acao=2")
End Sub

Ela seleciona o ID da pergunta, e verifica qual estado está o campo Booleano e "inverte" o estado do mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vixii...jah na parte de exibir ocultar ou liberar...apareceu esse erro:

Microsoft VBScript runtime error '800a000d' Type mismatch /admin/consulta.asp, line 341

no meu codigo ta assim:
<TD bgcolor="f3f3f3"> <div align="center">	<a href="?Acao=3&Definir=3&desenvolvidos=<%=objrs("desenvolvidos")%>"><%If objrs("desenvolvidos") = False Then%>Liberar<%Else%>Ocultar<%End If%></a><br></div></TD>	</TR>	<%  objRS.MoveNext  If objRS.Eof then Exit ForNextSet Cont = Nothing%>
veja com seus proprios olhos:http://www.centropaulista.com.br/admin/consulta.aspoutra coisa...a linha que está: desenvolvidos = FunTrataSQL(Request("desenvolvidos"))(aih ta desenvolvidos porq eu alterei) esse funtratasql eh o q???voce está declarando alguma coisa para ele em alguma parte anterior do codigo???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostrei o código para você poder ter uma idéia melhor do que fazer, esse sistema que fiz está todo baseado em Subs e Functions (e te mostrei apenas a parte que libera ou não a enquete), por isso o link passa parâmetros como "Acao" e "Definir", para que meu sistema saiba o que deve fazer. O FunTrataSQL é uma Function que criei para tratar SQLInjection, mas você pode retira-la.

 

Vamos ajustá-la para seu caso então, retire o "&Definir=3" do link e em seu code coloque um Select Case, para testar se está recebendo do "Acao" o valor correto para "liberar" a exibição.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Select Case Request("Acao")
Case "3"
Call Aprovar()
End Select

A Sub Aprovar() deve estar na mesma página.

 

Ah, o erro de Type Mismath acontece quando está montando os Links?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim...tambem nao entendi o porq nao funcionou...o codigo está simples e pelo que eu vi nao tem erro de digitacao nada:<a href="?Acao=3&desenvolvidos=<%=objRS("id")%>"><%If ObjRS("desenvolvidos") = False Then%>|- Liberar -|<%Else%>|- Ocultar -|<%End If%></a><br>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse seu campo do BD é de que tipo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, troque o FALSE por 0 (zero) no código e vamos testar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu certo eu trocando o false pelo zero!....agora falta eu consigui esse bregueco de clicar ele muda....

putz kra nem sei como agradece o tanto que se ta me ajudando!

se der pra ajudar nesse negocio do clicar e mudar...to kebranu a cabeça aki..nunca fiz curso asp nada..eu aprendo olhando os codigos mesmo...fiz uns cursinho basico pra sabe algumas funções só...=\\

minha cidade nao tem curso de asp

mai issu aih...se der pra continua me ajudando!=]

bom...com o select case que se me falo...meu codigo ta assim(no codigo abaixo está o select case e o sub):

 

<%Select Case Request("Acao")Case "3"Call Aprovar()End SelectSub Aprovar()	desenvolvidos = Request("desenvolvidos")	If desenvolvidos = "" OR IsNumeric(desenvolvidos) = False Then		Response.Redirect("consulta.asp")	End If' Libera ou não para votação a Enquete	Call SubAbreConn()	Set RSAprova = Server.CreateObject("ADODB.RecordSet")	SQLdes = "Select * From sites Where desenvolvidos = "& desenvolvidos &";"	RSAprova.Open SQLdes,ObjConn,3,2	If Not RSAprova.EOF Then		While Not RSAprova.EOF			If RSAprova("Exibir") = False Then 				RSAprova("Exibir") = True			Else				RSAprova("Exibir") = False			End If			RSAprova.Update			RSAprova.MoveNext		Wend	End If	RSAprova.Close	Set RSAprova = Nothing	Call SubFechaConn()	Response.Redirect("?Acao=2")End Sub%>

Compartilhar este post


Link para o post
Compartilhar em outros sites
deu certo eu trocando o false pelo zero!....agora falta eu consigui esse bregueco de clicar ele muda....

putz kra nem sei como agradece o tanto que se ta me ajudando!

se der pra ajudar nesse negocio do clicar e mudar...to kebranu a cabeça aki..nunca fiz curso asp nada..eu aprendo olhando os codigos mesmo...fiz uns cursinho basico pra sabe algumas funções só...=\\

minha cidade nao tem curso de asp

mai issu aih...se der pra continua me ajudando!=]

bom...com o select case que se me falo...meu codigo ta assim(no codigo abaixo está o select case e o sub):

Tá melhor que eu, tem até cursinho, nunca fiz curso de ASP ou programação.

 

Testa essa alteração:

<%
Select Case Request("Acao")
Case "3"
Call Aprovar()
End Select

Sub Aprovar()
desenvolvidos = Request("desenvolvidos")
If desenvolvidos = "" OR IsNumeric(desenvolvidos) = False Then
	Response.Redirect("consulta.asp")
End If
' Libera ou não para exibição

Set RSAprova = Server.CreateObject("ADODB.RecordSet")
SQLdes = "Select * From sites Where desenvolvidos = "& desenvolvidos &";"
RSAprova.Open SQLdes,ObjConn,3,2 '-No lugar de ObjConn utilize a sua conexão
If Not RSAprova.EOF Then
	While Not RSAprova.EOF
		If RSAprova("Exibir") = 0 Then 
			RSAprova("Exibir") = 1
		Else
			RSAprova("Exibir") = 0
		End If
		RSAprova.Update
		RSAprova.MoveNext
	Wend
End If
RSAprova.Close
Set RSAprova = Nothing

Response.Redirect("consulta.asp")
End Sub
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Campo é esse mesmo? Então troca na SQL:

SQLdes = "Select * From sites Where ID = "& desenvolvidos &";"

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.