Ir para conteúdo
Fórum Script Brasil
  • 0

Checkbox + Bd


SilverBlood

Pergunta

Boa Tarde!!!

Bom, estou com um problema em meu checkbox

vou tentar explicar o que bolei para esse esquema:

tenho um campo em meu BD, ao qual ela guarda todos os valores de meus CHECKBOX no formato 1;2;3;4;5;6;7;8;9;

mas caso algum item não for marcado ele troca o numero por um zero, exemplo, escolhi 2 itens então no bd vai guardar daseguinte forma: 1;0;0;0;5;0;0;0;0;, nesse caso marquei a opção 1 e 5

a pagina de incluir no BD funciona certinho...

agora já na hora eu eu montar a pagina de (alterar)UPDATE é que vem o problema.

busco as informações no BD, jogo o valor do banco (1;0;0;0;5;0;0;0;0;) numa variavel e quebro ela com o SPLIT tirando os ;

agora que vem o problema eu não estou conseguindo montar os checkbox com seus determinados valores, usei um FOR para tentar colocar um valor em cada CHECKBOX, mas meus CHECKBOX são montados atraves de um WHILE pois busco numa tabela os seus valores.

e não consigo associar essas informações, vou mostrar o codigo:


<table width="100%" border="1" cellpadding="0" cellspacing="0" class="principal">
<tr>
<td width="25%"><input type="checkbox" name="new_tipo_curso0" value="0">Principal</td>
<%
Dim SQL_disciplina,ObjRs2,cont,contador,gra_codigo,gra_nome
SQL_disciplina = "SELECT * FROM tbGraduacao ORDER BY gra_codigo asc"
Set ObjRs2 = objConn.Execute(SQL_disciplina)

Dim array_new_tipo_curso,new_tipo_curso,checked,i,c

array_new_tipo_curso = split(new_tipo_curso,";",-1,1) 'tira a virgula da variavel
'Response.Write "teste: " & new_tipo_curso
'Response.End()
For i = LBound(array_new_tipo_curso) to UBound(array_new_tipo_curso) -1 'Loop
'Response.Write array_new_tipo_curso(i) & "<br>"
If array_new_tipo_curso(i) <> 0 Then
'Response.Write array_new_tipo_curso(i) & "<br>"
checked = "checked"
'Response.Write checked
End If
Next

cont = 1 'para dividir a tabela em linhas
contador = 1 'para dar nome as disciplinas
while not ObjRs2.EOF
gra_codigo = Eval(ObjRs2("gra_codigo"))
gra_nome = Trim(ObjRs2("gra_nome"))

%>
<td width="25%"><input type="checkbox" name="new_tipo_curso<%=contador%>" value="<%=contador%>" <%If checked <> "0" Then Response.Write "checked"%>><%=gra_nome%></td>
<%
cont = cont + 1
contador = contador + 1
If cont > 3 then ' poe o </tr> e depois <tr> e cria a proxima linha
%>
</tr>
<tr>
<%
cont = 0
End If
ObjRs2.movenext
wend
%>
<input type="hidden" name="contador" value="<%=contador%>">
</table> [/codebox]

nesse exemplo fiz um FOR para separar a variavel do check box e depois um WHILE para gerar meus checkbox e o que acontece é minha variavel CHECKED sempre esta com o ultimo valor do ARRAY, com o WHILE dentro do FOR acontece ao contrario, pois ele pega o priemiro valor do array, monta o WHILE, e depois continua o FOR.

já tentei de tudo que foi jeito e nada funciona.. alguém tem alguma ideia???? conseguiram entender o que quero fazer??? to a 3 dias nisso e estou pirandooooooo.....

obrigado

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
perai, xo ve se eu entendi.... em 1 linha de registro você tem um campo que trata de varios checkbox? por exemplo (no BD):

campo1 | campo2 | campo3 | checkbox

aaaaaa | bbbbbb | cccccccc | 1;0;0;3;0

dddddd | eeeeee | ggggggg | 5;1;2;0;0

isso...

vo tenta explica o que estou desenvolvendo....

imagina um sistema de noticia, onde quando eu incluir eu posso determinar que area essa noticia pode pertencer, no meu antigo sistema era facil, eu criei 4 campo no BD e guardava 1 caracter determinando sim ou não.

só que hj não tenho so 4 opções e sim 9, então fiz os checkbox dinamicos, consulto uma tabela "cursos" e a qtd de cursos sera os meus check box e para guardar isso no BD, eu so consegui pensar em um campo ao qual guardasse todos os codigos de cada cursos, então defini o padrão codigo;codigo;codigo;etc, e quando um checkbox estiver em branco, esse valor é substituido por ZERO, assim eu posso ter qtos cursos eu quizer, por exemplo:

- cadastrei uma noticia e escolhi os curso 2, 5, 8

o campo no bd será 0;2;0;0;5;0;0;8;0;

depois que postei esse problema aqui, eu consegui finalmente resolve-lo =)

masssssssss agora quando quero mostrar as noticias de cada curso vem o problema >.<

meu select seria:

SELECT * FROM tbNews WHERE new_tipo_curso = '" & variavel & "' AND new_titulo LIKE '%" & Procurar & "%' AND new_status = 'A' ORDER BY new_dt_inclusao DESC, new_codigo DESC"

new_tipo_curso é o campo com a sequencia 0;2;0;0;5;0;0;8;0;

mas agora não tem como eu comparar esse campo com o codigo do curso, e me perdi aqui...

agora pergunto existe algum modo de fazer isso de forma mais simples???

o que eu estou tentando desenvolver é um esquema de cadastro de noticia, onde cada noticia pode ser de um ou mais cursos e que caso aja um novo curso o mesmo já esteja disponivel para ser usado, sem ter que criar mais campo no BD e ter que modificar o codigo-fonte toda vez que precisar...

bom.. é isso.. heheh

amanha posto os meus testes...

fui..

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...