Ir para conteúdo

POWERED BY:

Arquivado

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

hao

Trazer checkbox selecionados

Recommended Posts

Fala pessoal, to com mais uma duvida!

 

Tenho duas tabelas, uma com opcionais e outra com automoveis. Para a tabela automoveis tenho um campo q registra os opcionais desta forma: ABS, DIREÇÃO HIDRÁULICA, TRIO ELÉTRICO ... por ai vai, sempre separando por virgula.

 

Porem na hora de puxar no formulario as opções marcadas e as opcoes nao marcadas esta dando problema, meu codigo ta assim:

 

<%acessorios = split(rs("acessorios"), ",")if not rs_acessorio.eof thenFor i = LBound(acessorios) To UBound(acessorios)do while not rs_acessorio.eofacessociosA = rs_acessorio("acessorio")if acessociosA = acessorios(i) thenchecar = " checked=""checked"""elsechecar = ""end if%><input name="acessorio" id="acessorio" value="<%=acessociosA%>" type="checkbox"<%=checar%>><%=acessociosA%><br><%rs_acessorio.movenextloopNEXTend if%>
acho q tem alguma coisa errada, mas tentei de varias formas e nao consegui nenhum resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala pessoal, to com mais uma duvida!Tenho duas tabelas, uma com opcionais e outra com automoveis. Para a tabela automoveis tenho um campo q registra os opcionais desta forma: ABS, DIREÇÃO HIDRÁULICA, TRIO ELÉTRICO ... por ai vai, sempre separando por virgula.Porem na hora de puxar no formulario as opções marcadas e as opcoes nao marcadas esta dando problema, meu codigo ta assim:

<%acessorios = split(rs("acessorios"), ",")if not rs_acessorio.eof thenFor i = LBound(acessorios) To UBound(acessorios)do while not rs_acessorio.eofacessociosA = rs_acessorio("acessorio")if acessociosA = acessorios(i) thenchecar = " checked=""checked"""elsechecar = ""end if%><input name="acessorio" id="acessorio" value="<%=acessociosA%>" type="checkbox"<%=checar%>><%=acessociosA%><br><%rs_acessorio.movenextloopNEXTend if%>
acho q tem alguma coisa errada, mas tentei de varias formas e nao consegui nenhum resultado.
Faço só este teste:Troque:
if acessociosA = acessorios(i) then			checar = " checked=""checked"""		else			checar = ""		end if		%>		<input name="acessorio" id="acessorio" value="<%=acessociosA%>" type="checkbox"<%=checar%>><%=acessociosA%><br>		<%
Pro:
if acessociosA = acessorios(i) then			checar = "checked"		else			checar = ""		end if		%>		<input name="acessorio" id="acessorio" value="<%=acessociosA%>" type="checkbox"  [b](coloque espacços em branco aqui para os comandos não colarem e serem ignorados[/]b  checked="<%=checar%>"><%=acessociosA%><br>		<%
Faça o teste e verifique se funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado por responder jothaz!

 

bem alterei o q você pediu mas continua o msm erro, ele tras apenas o primeiro opcional cadastrado na tabela de automoveis.

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado por responder jothaz!

 

bem alterei o q você pediu mas continua o msm erro, ele tras apenas o primeiro opcional cadastrado na tabela de automoveis.

Execute os comandos abaixo e post o resultado:

response.write  "Ubound = "  & UBound(acessorios) & "<br>"response.write  "LBound= "  & LBound(acessorios) & "<br>"response.write  "Isarray = "  & Isarray(acessorios) & "<br>"
Vamos analisar os resultados.

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele passou esse resultado:Ubound = 9LBound= 0Isarray = Verdadeiro

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele passou esse resultado:

 

Ubound = 9

LBound= 0

Isarray = Verdadeiro

Bom acessorios é vetor.

 

O FOR não deveria esta dentro do WHILE?

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu tentei assim olha soh com o for dentro do while:

 

<%if not rs_acessorio.eof thendo while not rs_acessorio.eofacessorios = split(rs("acessorios"), ",")For i = LBound(acessorios) To UBound(acessorios)acessociosA = rs_acessorio("acessorio")if acessociosA = acessorios(i) thenchecar = " checked=""checked"""elsechecar = ""end if%><input name="acessorio" id="acessorio" value="<%=acessociosA%>" type="checkbox"<%=checar%>><%=acessociosA%><br><%NEXTrs_acessorio.movenextloopend if%>

mas da esse erro aki:

 

Tipo de erro: Erro de tempo de execução do Microsoft VBScript (0x800A005E)Uso inválido de Null: 'split'[b]/nclassifoto/painel/automovel-editar.asp, line 266[/b]

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu tentei assim olha soh com o for dentro do while:

<%if not rs_acessorio.eof thendo while not rs_acessorio.eofacessorios = split(rs("acessorios"), ",")   For i = LBound(acessorios) To UBound(acessorios)acessociosA = rs_acessorio("acessorio")if acessociosA = acessorios(i) thenchecar = " checked=""checked"""elsechecar = ""end if%><input name="acessorio" id="acessorio" value="<%=acessociosA%>" type="checkbox"<%=checar%>><%=acessociosA%><br><%NEXTrs_acessorio.movenextloopend if%>
mas da esse erro aki:
Tipo de erro: Erro de tempo de execução do Microsoft VBScript (0x800A005E)Uso inválido de Null: 'split'[b]/nclassifoto/painel/automovel-editar.asp, line 266[/b]
Pelo que pude ver o erro e pq o nome do recordset esta errado: (esta rs e deve ser rs_acessorio).Troque:
acessorios = split(rs("acessorios"), ",")
Por:
acessorios = split(rs_acessorio("acessorios"), ",")

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao eh isso,

 

na tabela automoveis q tem o "rs" , os acessorios estao gravados assim: ABS,DIREÇÃO HIDRÁULICA ... e assim por diante, e na tabela acessorios o recordset eh esse "rs_acessorio" e os dados estao inserido um registro em baixo do outro.

 

opa consegui algo. o codigo ta assim:

 

<%if not rs_acessorio.eof thendo while not rs_acessorio.eofacessociosA = rs_acessorio("acessorio")acessorios = split(acessociosA, ",")For i = LBound(acessorios) To UBound(acessorios)if acessociosA = acessorios(i) thenchecar = " checked"elsechecar = ""end ifNEXT%><input name="acessorio" id="acessorio" value="<%=acessociosA%>" type="checkbox"<%=checar%>><%=acessociosA%><br><%rs_acessorio.movenextloopend if%>

mas estao vindo todos os acessorios checked, o q pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Execute o comando abaixo e post o resultado:

............		For i = LBound(acessorios) To UBound(acessorios)response.write "acessociosA = " & acessociosA & "<br>"response.write "acessorios(" & i & ") = " & acessorios(i) & "<br>"			if acessociosA = acessorios(i) then............

Compartilhar este post


Link para o post
Compartilhar em outros sites

o resultado foi esse:

 

acessociosA = ABSacessorios(0) = ABS  ABS  acessociosA = AIR BAGacessorios(0) = AIR BAG  AIR BAG  acessociosA = ALARMEacessorios(0) = ALARME  ALARME  acessociosA = AR CONDICIONADOacessorios(0) = AR CONDICIONADO  AR CONDICIONADO  acessociosA = AR QUENTEacessorios(0) = AR QUENTE  AR QUENTE  acessociosA = BAGAGEIROacessorios(0) = BAGAGEIRO  BAGAGEIRO  acessociosA = BANCO DE COUROacessorios(0) = BANCO DE COURO  BANCO DE COURO  acessociosA = BLINDADOacessorios(0) = BLINDADO  BLINDADO  acessociosA = CÂMBIO AUTOMÁTICOacessorios(0) = CÂMBIO AUTOMÁTICO  CÂMBIO AUTOMÁTICO  acessociosA = CDacessorios(0) = CD  CD  acessociosA = COMPUTADOR DE BORDOacessorios(0) = COMPUTADOR DE BORDO  COMPUTADOR DE BORDO  acessociosA = DESEMBAÇADORacessorios(0) = DESEMBAÇADOR  DESEMBAÇADOR  acessociosA = DIREÇÃO HIDRÁULICAacessorios(0) = DIREÇÃO HIDRÁULICA  DIREÇÃO HIDRÁULICA  acessociosA = ENGATEacessorios(0) = ENGATE  ENGATE  acessociosA = FAROL DE MILHAacessorios(0) = FAROL DE MILHA  FAROL DE MILHA  acessociosA = FAROL DE NEBLINAacessorios(0) = FAROL DE NEBLINA  FAROL DE NEBLINA  acessociosA = LIMPADOR TRASEIROacessorios(0) = LIMPADOR TRASEIRO  LIMPADOR TRASEIRO  acessociosA = PROTETOR DE CAÇAMBAacessorios(0) = PROTETOR DE CAÇAMBA  PROTETOR DE CAÇAMBA  acessociosA = QUEBRA MATOacessorios(0) = QUEBRA MATO  QUEBRA MATO  acessociosA = RÁDIOacessorios(0) = RÁDIO  RÁDIO  acessociosA = RODA LIGAacessorios(0) = RODA LIGA  RODA LIGA  acessociosA = SANTO ANTONIOacessorios(0) = SANTO ANTONIO  SANTO ANTONIO  acessociosA = TETO-SOLARacessorios(0) = TETO-SOLAR  TETO-SOLAR  acessociosA = TOCA-FITASacessorios(0) = TOCA-FITAS  TOCA-FITAS  acessociosA = TRAÇÃO 4x4acessorios(0) = TRAÇÃO 4x4  TRAÇÃO 4x4  acessociosA = TRAVA-ELÉTRICAacessorios(0) = TRAVA-ELÉTRICA  TRAVA-ELÉTRICA  acessociosA = TRIO-ELÉTRICOacessorios(0) = TRIO-ELÉTRICO  TRIO-ELÉTRICO  acessociosA = VIDRO ELÉTRICOacessorios(0) = VIDRO ELÉTRICO  VIDRO ELÉTRICO  acessociosA = VIDRO ESCURECIDOacessorios(0) = VIDRO ESCURECIDO  VIDRO ESCURECIDO

Compartilhar este post


Link para o post
Compartilhar em outros sites

o resultado foi esse:

acessociosA = ABSacessorios(0) = ABS  ABS  acessociosA = AIR BAGacessorios(0) = AIR BAG  AIR BAG  acessociosA = ALARMEacessorios(0) = ALARME  ALARME  acessociosA = AR CONDICIONADOacessorios(0) = AR CONDICIONADO  AR CONDICIONADO  acessociosA = AR QUENTEacessorios(0) = AR QUENTE  AR QUENTE  acessociosA = BAGAGEIROacessorios(0) = BAGAGEIRO  BAGAGEIRO  acessociosA = BANCO DE COUROacessorios(0) = BANCO DE COURO  BANCO DE COURO  acessociosA = BLINDADOacessorios(0) = BLINDADO  BLINDADO  acessociosA = CÂMBIO AUTOMÁTICOacessorios(0) = CÂMBIO AUTOMÁTICO  CÂMBIO AUTOMÁTICO  acessociosA = CDacessorios(0) = CD  CD  acessociosA = COMPUTADOR DE BORDOacessorios(0) = COMPUTADOR DE BORDO  COMPUTADOR DE BORDO  acessociosA = DESEMBAÇADORacessorios(0) = DESEMBAÇADOR  DESEMBAÇADOR  acessociosA = DIREÇÃO HIDRÁULICAacessorios(0) = DIREÇÃO HIDRÁULICA  DIREÇÃO HIDRÁULICA  acessociosA = ENGATEacessorios(0) = ENGATE  ENGATE  acessociosA = FAROL DE MILHAacessorios(0) = FAROL DE MILHA  FAROL DE MILHA  acessociosA = FAROL DE NEBLINAacessorios(0) = FAROL DE NEBLINA  FAROL DE NEBLINA  acessociosA = LIMPADOR TRASEIROacessorios(0) = LIMPADOR TRASEIRO  LIMPADOR TRASEIRO  acessociosA = PROTETOR DE CAÇAMBAacessorios(0) = PROTETOR DE CAÇAMBA  PROTETOR DE CAÇAMBA  acessociosA = QUEBRA MATOacessorios(0) = QUEBRA MATO  QUEBRA MATO  acessociosA = RÁDIOacessorios(0) = RÁDIO  RÁDIO  acessociosA = RODA LIGAacessorios(0) = RODA LIGA  RODA LIGA  acessociosA = SANTO ANTONIOacessorios(0) = SANTO ANTONIO  SANTO ANTONIO  acessociosA = TETO-SOLARacessorios(0) = TETO-SOLAR  TETO-SOLAR  acessociosA = TOCA-FITASacessorios(0) = TOCA-FITAS  TOCA-FITAS  acessociosA = TRAÇÃO 4x4acessorios(0) = TRAÇÃO 4x4  TRAÇÃO 4x4  acessociosA = TRAVA-ELÉTRICAacessorios(0) = TRAVA-ELÉTRICA  TRAVA-ELÉTRICA  acessociosA = TRIO-ELÉTRICOacessorios(0) = TRIO-ELÉTRICO  TRIO-ELÉTRICO  acessociosA = VIDRO ELÉTRICOacessorios(0) = VIDRO ELÉTRICO  VIDRO ELÉTRICO  acessociosA = VIDRO ESCURECIDOacessorios(0) = VIDRO ESCURECIDO  VIDRO ESCURECIDO
você percebeu a variavel i esta sempre com o valor de 0 no resultado do response.write (acessorios(0))?E os checks estão todos marcado pq o conteúdo :de acessociosA = ABS é igual ao conteúdo de acessorios(0) = ABS.O trecho abaixo esta correto?
............acessociosA = rs_acessorio("acessorio")acessorios = split(acessociosA, ",").........%>
Pelo trecuo de códgi acima tanto a variavel acessociosA e acessorios têm o mesmo conteúdo. Por isso todo os checks vem marcados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

[/b]hahahhahahah, da vontade ate de rir de mim msm!! foi uma coisa tao boba q nem pensei!!!

 

justamente eu estava usando uma variavel comparando a mesma variavel, por isso estava ocorrendo de todos estarem checkeds.

 

agora segue o codigo pronto pra usar! quem quiser eh so pegar!! com grande ajuda do jothaz!! obrigado msm cara!

 

<%if not rs_acessorio.eof thenacessociosB = rs("acessorios")do while not rs_acessorio.eofacessociosA = rs_acessorio("acessorio")acessorios = split(acessociosB, ",")For i = LBound(acessorios) To UBound(acessorios)if acessociosA = acessorios(i) thenchecar = " checked"elsechecar = ""end ifNEXT%><input name="acessorio" id="acessorio" value="<%=acessociosA%>" type="checkbox"<%=checar%>><%=acessociosA%><br><%rs_acessorio.movenextloopend if%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

[/b]hahahhahahah, da vontade ate de rir de mim msm!! foi uma coisa tao boba q nem pensei!!!

 

justamente eu estava usando uma variavel comparando a mesma variavel, por isso estava ocorrendo de todos estarem checkeds.

 

agora segue o codigo pronto pra usar! quem quiser eh so pegar!! com grande ajuda do jothaz!! obrigado msm cara!

 

<%if not rs_acessorio.eof thenacessociosB = rs("acessorios")do while not rs_acessorio.eofacessociosA = rs_acessorio("acessorio")acessorios = split(acessociosB, ",")For i = LBound(acessorios) To UBound(acessorios)if acessociosA = acessorios(i) thenchecar = " checked"elsechecar = ""end ifNEXT%><input name="acessorio" id="acessorio" value="<%=acessociosA%>" type="checkbox"<%=checar%>><%=acessociosA%><br><%rs_acessorio.movenextloopend if%>
beleza!

 

Fico feliz em ajudar.

 

Analizando o código acho que até poderia alter o FOR por um INSTR.

 

A função INSTR localiza uma string dentro de outra string e retornando a posição. Se retorna zero é por que não achou.

 

Bom mas isso é só elocubração.

 

Precisou posta ai! :o)

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza!Fico feliz em ajudar.Analizando o código acho que até poderia alter o FOR por um INSTR.A função INSTR localiza uma string dentro de outra string e retornando a posição. Se retorna zero é por que não achou.Bom mas isso é só elocubração.Precisou posta ai! :o )

opa valeu msm cara, qq coisa eu retorno aki, mexendo no codigo vi q num tava totalmente certo, o codigo abaixo esta sem erros(por enquanto, rss), e mais uma vez seu conhecimento foi de uma ajuda sem palavras, e vou saber mais sobre a função INSTR.abração!!!!
<%acessorios = Split(rs("acessorios"), ", ")if not rs_acessorio.eof thenwhile not rs_acessorio.eofacessociosA = rs_acessorio("acessorio")checar = ""For i = LBound(acessorios) To UBound(acessorios)if acessociosA = acessorios(i) thenchecar = " checked"end ifNEXT%><input name="acessorio" id="acessorio" value="<%=acessociosA%>" type="checkbox"<%=checar%>><%=acessociosA%><br><%rs_acessorio.movenextWendend if%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom a idéia do INSTR é esta:

 

<%

dim sAux,iPos

acessorios = rs("acessorios")

 

while not rs_acessorio.eof

 

acessociosA = "," & rs_acessorio("acessorio") & ","

iPos = INSTR(acessorios , acessociosA)

checar = ""

if iPos >0 then

checar = " checked "

end if

 

%>

 

<input name="acessorio" id="acessorio" value="<%=acessociosA%>" type="checkbox"<%=checar%>><%=acessociosA%><br>

 

<%

 

rs_acessorio.movenext

Wend

 

%>

 

Camarada não testei pq hoje dia estou trabalhando com Java e não tenho acesso ao IIS fácil nem em minha casa.

 

Mas a idéia é esta.

 

Segue descrição do INSTR:

Devolve a posição da primeira ocorrência de uma string dentro de outra.

Dim ProcuraString, ProcuraChar, MinhaPos

ProcuraString ="XXpXXpXXPXXP" ' String onde procurar

ProcuraChar = "P" ' Procurar por "P"

MinhaPos = Instr(4, ProcuraString, ProcuraChar, 1)

' Uma comparação textual a começar em 4 devolve 6

 

Do link: http://www.superasp.com.br/

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu certinho cara, a unica coisa q num precisa eh a virgula q você colocou antes e depois de acessorioA, mas de resto funcionou do msm jeito q o outro codigo, e o melhor com menas linhas de comando q o outro!valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu certinho cara, a unica coisa q num precisa eh a virgula q você colocou antes e depois de acessorioA, mas de resto funcionou do msm jeito q o outro codigo, e o melhor com menas linhas de comando q o outro!

 

valeu!!!

Que bom! Nem testei.

 

Coloquei as virgulas para facilitar a comparação dos caracteres mas como não testei tinha um erito:

 

Acho q se você trocar:

acessorios = rs("acessorios")
Por:

acessorios = "," & rs("acessorios") & ","
Vai funcionar. Foi só uma mania.

 

você ainda pode reduzir o código ainda mais se colocasse tudo dentro de uma expressão:

 

--> if INSTR("," & rs("acessorios") & "," , "," & rs_acessorio("acessorio") & "," ) > 0 then

checar = " checked "

end if

 

Isto é só para você ter um idéia das vária maneiras que esta situação pode ser abordada.

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

nossa!! esse ultimo ficou reduzido pra kcilda, cara eh muito bom participar desse forum, soh tem cara q manja aki!!com certeza irei usar um desses codigo jothaz!!ate mais!

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.