Jump to content


Photo

Checkbox Checked De Acordo Com O Bd


  • Faça o login para participar
7 replies to this topic

#1 Piano

Piano

    Novato no fórum

  • Usuários
  • 17 posts
  • Sexo:Não informado

Posted 02/03/2010, 16:18

Olá,

Estou tentando fazer um banco de dados com ASP. Gostaria que ao exibir uma tabela com as informações retiradas do Banco de Dados do Access, uma checkbox fosse checked caso o valor do campo fosse Sim e vazia caso fosse Não, pois o tipo de dados referente ao campo é Sim/Não.

Obrigado.

#2 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 02/03/2010, 16:43

Use a Pesquisa. Achei essa resposta e é só adaptar.

claro,
e essa checkbox habilitava a função inadimplencia, quando marcada ela deveria bloquear a criação de pedidos. Quando você pede para uma checkbox gravar o seu valor no bd quando ela está habilitada (checked) ela grava o valor "on" sem aspas no bd. Quando desmarcada (unchecked) ela não grava nda.
Então o que fiz foi uma consição if que segue abaixo

if response.write rs("inadi") = "on"
response.redirect("cod_abrecliente.asp?msg=Cadastro de pedidos bloqueados, cliente com pendências financeiras."
end if

OBS: Não coloquei uma função else pois se estiver desmarcada ela grava um valor NULL então para simplificar fiz apenas assim, caso o valor seja num o codigo passa para a pagina de pedidos normalmente.


Ou seja, se você leu e entendeu, o BD irá gravar ON para SIM e NULL para NÃO, bastando então fazer um IF simples como descrito pelo colega.

Ae, com esse IF em ASP, você checa ou não o checkbox em html.

Ex.

<%if rs("booleano") = "on"%>
<input type="checkbox" name="booleano" checked>
<%else%>
<input type="checkbox" name="booleano">
<%end if%>

Observe que mesclei HTML com ASP sem utilizar response.write. Você pode fazer da maneira que preferir.
Não sabe por onde começar? Que tal pelas Regras ?

#3 DeeK

DeeK

    Normal

  • Usuários
  • 63 posts
  • Sexo:Masculino

Posted 02/03/2010, 16:46


SQL = "Select Status From Tabela Where Codigo = 1"

Set Rs = Server.CreateObject("ADODB.RecordSet")



Rs.Open Sql, Conexao, 3, 3



IF Rs("Status") = "Sim" Then

   Checked = "checked = checked"

End If



Response.Write("<input type='checkbox' value='Sim' name='checkbox'" & Checked & ">")



#4 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 02/03/2010, 16:56

Caso use a solução acima, trocar

Checked = "checked = checked"

por

Checked = "checked"

a propriedade checked no HTML não é setada, basta colocá-la para a checkbox aparecer com o tick.
Não sabe por onde começar? Que tal pelas Regras ?

#5 Piano

Piano

    Novato no fórum

  • Usuários
  • 17 posts
  • Sexo:Não informado

Posted 02/03/2010, 17:15

Tentei das duas maneiras, mas não funcionou. O que está errado?
<%
sql="SELECT * FROM andamento"
tabela.open sql,conexao,3,3
SetLocale("pt-br")
IF tabela("A1") = "Sim" Then
   A1 = "checked"
End If
while not tabela.eof
%>
<table width="20%" class="sample">
<tr><td>Contrato<td><%=tabela("Contrato")%>
<tr><td>A1<td><%="<input type='checkbox' value='Sim' name='A1'" & A1 & ">"%>

<%if tabela("A1") = "Sim" THEN%>
<input type="checkbox" name="A1" checked>
<%else%>
<input type="checkbox" name="A1">
<%end if%>


#6 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 02/03/2010, 17:41

Como mencionado, troque "Sim" nessa instrução

<%if tabela("A1") = "Sim" THEN%>

por "on"

<%if tabela("A1") = "on" THEN%>

Não sabe por onde começar? Que tal pelas Regras ?

#7 Renan L. Queiroz

Renan L. Queiroz

    Mestre

  • Usuários
  • 690 posts
  • Sexo:Masculino
  • Localidade:Brasilia - DF

Posted 02/03/2010, 17:45

Tenta algo como isso:
<%
    SetLocale("pt-br")

    sql = "select * from andamento"
    tabela.open sql, conexao, 3, 3
%>
    <table width="20%" class="sample">
        <tr>
            <td> Contrato <td>
            <td> A1 </td>
        </tr>
<%
        Dim check : check = ""
        While Not tabela.eof

            If tabela("A1") = "Sim" Then
                check = "checked"
            Else
                check = ""
            End If
%>
            <tr>
                <td><%=tabela("Contrato")%></td>
                <td><input type="checkbox" value="Sim" name="A1" <%=check%>></td>
            </tr>
<%
            tabela.movenext()
        Wend
%>
    </table>

Especialidade: Desenvolvimento e Banco de Dados.


Este post lhe ajudou? Agradeça: Posted Image


#8 DarkSign

DarkSign

    Doutor

  • Usuários
  • 868 posts
  • Sexo:Masculino
  • Localidade:Brasil
  • Interesses:Tecnologias na área WEB em geral e desenvolvimento.

Posted 02/03/2010, 17:50

Se todas as soluções propostas não resolveram, vasculhando mais um pouco a interwebz, localizei textos que dizem que o valor para "checado" da checkbox depende do que tu colocou no BD, na sua procedure de gravar os dados.

Isso que é trabalhar com o Access :P

Então, se você gravou algo como "Checado" e "não-checado" na sua SQL, é isso que deverá usar para testar.

Em suma, o Access deveria retornar "on" para o valor TRUE e NULL para o valor FALSE.

Poste o código que está usando para gravar seus campos no BD, isso pode ser útil.
Não sabe por onde começar? Que tal pelas Regras ?




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq