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

Checkbox de duas tabelas


RapidFire

Pergunta

Estou usando o codigo abaixo para listar os id's das cidades que estão cadastradas no banco separadas por virgula, por exemplo 1,2,6,10,15...

depois preciso compra-las com as da tabela cadastro

O que preciso e listar estas cidades usando um checkbox e quando a cidade estiver na a tabela cidades o checkbox deve ficar checked quando não ele deve ficar vazio.

Fiz este codigo mais não esta funcionando.

vcodigo = Split(ObjRS_cadastro("cidades_envio"), ",")



     <%
     FOR i = LBOUND(vcodigo) to UBOUND(vcodigo)
     IF CSTR(vcodigo(i)) = CSTR(ObjRS_cidade("id_cidade")) THEN
     %>
     <input name="id_cidade" checked type="checkbox" id="id_cidade" value="<%=ObjRS_cidade("id_cidade")%>">
     <%
     END IF
     NEXT
     %>

Agradeço ajudas.

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Guest --RapidFire --
você deve fazer um IF dentro do checked, exemplo:

<input name="id_cidade" <% if cstr(ObjRS_cidade("id_cidade")) = CSTR(vcodigo(i)) then response.write "checked" end if %> type="checkbox" id="id_cidade" value="<%=ObjRS_cidade("id_cidade")%>">
Olá. Não esta funcionando mesmo assim. Os registros aparecem corretos somente no primeiro registro que esta cadastrado no banco. Depois os seguintes, ele so pega as primeiras cidades de cada um do registros cadastrados na tabela do banco. Por exemplo se esta cadastrado: cidade1, cidade2, cidade3 na tabela ele so mostra cidade1. Isto do segundo registro em diante. O primeiro ele mostra correto. Segue o código um pouco mais completo.
<%
vcodigo = ObjRS_campanha("cidades_envio")
vcodigo = Split(vcodigo, ",")
%>

<table width="100%" align="center">
<%
iLoopColuna = 1
Do While Not ObjRS_cidade.EOF 
%>
   <td> <table width="100%">
        <tr> 
        <td width="2%">
<%
FOR i = LBOUND(vcodigo) to UBOUND(vcodigo)
IF CSTR(vcodigo(i)) = CSTR(ObjRS_cidade("id_cidade")) THEN
%>
<input name="id_cidade" <% if cstr(ObjRS_cidade("id_cidade")) = CSTR(vcodigo(i)) then response.write "checked" end if %> type="checkbox" id="id_cidade" value="<%=ObjRS_cidade("id_cidade")%>">
<%
END IF
NEXT
%>
 </td>
          <td width="98%" class="td"><%=ObjRS_cidade("cidade")%></td>
  </tr>
</table> 
<%
if iLoopColuna = 3 Then
  iLoopColuna = 0 
%>
      </tr>
          <tr> 
            <%
end if 
iLoopColuna = iLoopColuna + 1 
ObjRS_cidade.MoveNext 
Loop 
%>
   <tr>
 </table>

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Ajudando por gostar de ajudar

:rolleyes:

Olá amigo. Espero que esteja tudo bem com você e que as coisas ai melhore um pouco em seus projetos com a ajuda do pessoal aqui (eles são gente boa).

Olha, verdades devem ser ditas em momentos de euforia ou muita vontade de fazer algo, a Andréia está certa em mencionar para você usar o IF, ele seria a melhor opção para você neste momento, porém seu problema está na arquitetura de seu banco de dados e não em seu código (tem alguns detalhes que provocam uns erros, mas irei ajudar e explicar logo mais), ele está parcialmente no caminho certo, mas sua arquitetura é o grande problema, irei dar uma dica para você e logo em seguida uma solução ao seu problema e esclarecer para você como funciona o checkbox com if de forma clara e objetiva, vamos lá.

Dica:

Olha, quando falamos em páginas dinâmicas, falamos também de forma direta sobre arquitetura de banco de dados, é praticamente impossível fazer algo bem feito sem uma boa arquitetura no banco de dados, mas de contra partida isto requer um pouco de experiência na prática (diploma você só usa em entrevistas de empregos, portfólio só em busca de trabalho, acho que os dois são importantes, mas portfólio está mais na prática que na teoria), assim é o que define uma boa arquitetura ou não, não basta ser um gênio em ASP, você deve ser um gênio em arquitetura da informação em ambos os casos, banco de dados e programação.

não confunda arquitetura com otimização, este é um dos principais problemas para jovens programadores em ASP, ter a ilusão que otimização irá resolver o problema de arquitetura no banco de dados, não irá, mas irá multiplicar seus problemas em frações de mil.

PARTE MAIS IMPORTANTE DA DICA:

Não veja o ASP como uma ferramenta de um arquiteto, ela não é, não é por que temos o termo "construção de sites" que podemos usa-la como uma ferramenta de arquiteto, ASP é muito mais especial que isto, não é uma profissão é uma paixão, daquelas a primeira vista que não importa quase nada, mas é muito importante ter 3 coisas; bonsenso, respeito e sinceridade, assim é com o ASP, paixão com as 3 coisas, programação, arquitetura e muita, mas muita criatividade, assim você será um programador em ASP (esta coisa de ASP.NET é coisa de marqueteiro de tecnologia magoado com o PHP, risos), um homem de bem que busca uma renda com honestidade e compromisso social (não explorar os simples no saber na internet e sim ajudá-los a permanecer nela com competência), assim você conquistará seu respeito no mercado e seus clientes fará a publicidade mais poderosa do mundo, o boa-a-boca (mas um bannerzinho de publicidade no site do amigo ajuda), boa sorte fica com Deus e que ele ilumine seus caminhos.

Frase..."Os olhos de um verdadeiro amigo é inconfundível entre tantos amigos" (Antes de morrer irei ver meu Brasil prestando serviços na internet em quilombos, a se vou!)

Solução:

com esta string você poderia fazer a mesma coisa de forma mais prática e logica em seu codigo.

SELECT Cadastro_cidade_nome, Cidade_nome FROM Cadastros INNER JOIN Cidades ON Cadastros.Cadastro_cidade_nome = Cidades.Cidade_nome
ela é simples de entender e de facil uso. Sobre seu userbox...Aconteseu uma confusão muito típica, como apresentar em HTML o texto "checked", está duvida é pura falta de atenção, tenha duto que você ver em um script como texto, Azul, verde, laranja e preto em determinados casos, usando <%=string%> você pode substituir qualquer texto em seu script, neste caso o texto "checked", em seu script ele tem que aparecer e desaparecer, ou seja, marcar ou não marcar, assim o recomendável seria este IF por se tratar de texto no script e não texto no layout. Exemplo: Layout se usaria: response.write, o texto seria apresentado como parte do layout. Script se usaria: <%= string%>, o texto seria parte do script e não seria apresentado no layout. Exemplo de script correto:
<input name="id_cidade" <% if Obj_exemplo("xxxxxxxx") =  Obj_exemplo("xxxxxxxx") then  checkL="checked" else checkL="" end if%> <%= checkL %> type="checkbox" id="id_cidade" value="<%=ObjRS_cidade("id_cidade")%>">

Espero ter ajudado, fica com Deus e boa sorte!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante
:rolleyes:

Olá amigo. Espero que esteja tudo bem com você e que as coisas ai melhore um pouco em seus projetos com a ajuda do pessoal aqui (eles são gente boa).

Olha, verdades devem ser ditas em momentos de euforia ou muita vontade de fazer algo, a Andréia está certa em mencionar para você usar o IF, ele seria a melhor opção para você neste momento, porém seu problema está na arquitetura de seu banco de dados e não em seu código (tem alguns detalhes que provocam uns erros, mas irei ajudar e explicar logo mais), ele está parcialmente no caminho certo, mas sua arquitetura é o grande problema, irei dar uma dica para você e logo em seguida uma solução ao seu problema e esclarecer para você como funciona o checkbox com if de forma clara e objetiva, vamos lá.

Dica:

Olha, quando falamos em páginas dinâmicas, falamos também de forma direta sobre arquitetura de banco de dados, é praticamente impossível fazer algo bem feito sem uma boa arquitetura no banco de dados, mas de contra partida isto requer um pouco de experiência na prática (diploma você só usa em entrevistas de empregos, portfólio só em busca de trabalho, acho que os dois são importantes, mas portfólio está mais na prática que na teoria), assim é o que define uma boa arquitetura ou não, não basta ser um gênio em ASP, você deve ser um gênio em arquitetura da informação em ambos os casos, banco de dados e programação.

não confunda arquitetura com otimização, este é um dos principais problemas para jovens programadores em ASP, ter a ilusão que otimização irá resolver o problema de arquitetura no banco de dados, não irá, mas irá multiplicar seus problemas em frações de mil.

PARTE MAIS IMPORTANTE DA DICA:

Não veja o ASP como uma ferramenta de um arquiteto, ela não é, não é por que temos o termo "construção de sites" que podemos usa-la como uma ferramenta de arquiteto, ASP é muito mais especial que isto, não é uma profissão é uma paixão, daquelas a primeira vista que não importa quase nada, mas é muito importante ter 3 coisas; bonsenso, respeito e sinceridade, assim é com o ASP, paixão com as 3 coisas, programação, arquitetura e muita, mas muita criatividade, assim você será um programador em ASP (esta coisa de ASP.NET é coisa de marqueteiro de tecnologia magoado com o PHP, risos), um homem de bem que busca uma renda com honestidade e compromisso social (não explorar os simples no saber na internet e sim ajudá-los a permanecer nela com competência), assim você conquistará seu respeito no mercado e seus clientes fará a publicidade mais poderosa do mundo, o boa-a-boca (mas um bannerzinho de publicidade no site do amigo ajuda), boa sorte fica com Deus e que ele ilumine seus caminhos.

Frase..."Os olhos de um verdadeiro amigo é inconfundível entre tantos amigos" (Antes de morrer irei ver meu Brasil prestando serviços na internet em quilombos, a se vou!)

Solução:

com esta string você poderia fazer a mesma coisa de forma mais prática e logica em seu codigo.

SELECT Cadastro_cidade_nome, Cidade_nome FROM Cadastros INNER JOIN Cidades ON Cadastros.Cadastro_cidade_nome = Cidades.Cidade_nome
ela é simples de entender e de facil uso. Sobre seu userbox...Aconteseu uma confusão muito típica, como apresentar em HTML o texto "checked", está duvida é pura falta de atenção, tenha duto que você ver em um script como texto, Azul, verde, laranja e preto em determinados casos, usando <%=string%> você pode substituir qualquer texto em seu script, neste caso o texto "checked", em seu script ele tem que aparecer e desaparecer, ou seja, marcar ou não marcar, assim o recomendável seria este IF por se tratar de texto no script e não texto no layout. Exemplo: Layout se usaria: response.write, o texto seria apresentado como parte do layout. Script se usaria: <%= string%>, o texto seria parte do script e não seria apresentado no layout. Exemplo de script correto:
<input name="id_cidade" <% if Obj_exemplo("xxxxxxxx") =  Obj_exemplo("xxxxxxxx") then  checkL="checked" else checkL="" end if%> <%= checkL %> type="checkbox" id="id_cidade" value="<%=ObjRS_cidade("id_cidade")%>">
Espero ter ajudado, fica com Deus e boa sorte!
:( Olá amigo obrigado pela orientação disposta a cima. Fiz o procedimento conforme vocês me orientraram, mais não mudou nada aparece da forma que estava antes. Se poder me ajudar serei muito grato porque tenho um prazo para entregar este projeto e não sei mais o que fazer. Muito obrigado.
<%
Set ObjRS_campanha = Server.CreateObject("ADODB.RecordSet")
SQL = "SELECT * FROM tb_cadastro_campanhas WHERE id_campanha="&Request("id_campanha")
Set ObjRS_campanha = ObjCon.Execute(SQL)
%>

<%
Set ObjRS_cidade = Server.CreateObject("ADODB.RecordSet")
SQL = "SELECT * FROM tb_cidades"
Set ObjRS_cidade = ObjCon.Execute(SQL)
%>

<table width="100%" align="center">
<%
iLoopColuna = 1
Do While Not ObjRS_cidade.EOF 
%>
<td> <table width="100%">
<tr> 
<td width="2%">
<%
FOR i = LBOUND(vcodigo) to UBOUND(vcodigo)
IF CSTR(vcodigo(i)) = CSTR(ObjRS_cidade("id_cidade")) THEN
%>
<input name="id_cidade" <% if cstr(ObjRS_cidade("id_cidade")) = CSTR(vcodigo(i)) then response.write "checked" end if %> type="checkbox" id="id_cidade" value="<%=ObjRS_cidade("id_cidade")%>">
<%
END IF
NEXT
%>
</td>
<td width="98%" class="td"><%=ObjRS_cidade("cidade")%></td>
</tr>
</table> 
<%
if iLoopColuna = 3 Then
iLoopColuna = 0 
%>
</tr>
<tr> 
<%
End if 
iLoopColuna = iLoopColuna + 1 
ObjRS_cidade.MoveNext 
Loop 
%>
<tr>
</table>

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Ajudando por gostar de ajudar

<%
Set ObjRS_cidade = Server.CreateObject("ADODB.RecordSet")
SQL = "SELECT * FROM tb_cadastro_campanhas WHERE id_campanha="&Request("id_campanha")
Set ObjRS_cadastro = ObjCon.Execute(SQL)
'--------------------------------------------------------------------------------------------------
SQL = "SELECT * FROM tb_cidades"
Set ObjRS_cidade = Server.CreateObject("ADODB.RecordSet")
ObjRS_cidade.CursorLocation = 3
ObjRS_cidade.Open sql, ObjCon
strRegistros = ObjRS_cidade.RecordCount
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<%If strRegistros = 0 Then %>
<%Else 
Do While not ObjRS_cidade.EOF 
%>
<tr>
<td height="19" ><table width="100%">
  <tr>
    <td width="2%">
<input name="id_cidade" <% if ObjRS_cidade("id_cidade") =  ObjRS_cadastro("id_cidade") then  checkL="checked" else checkL="" end if%> <%= checkL %> type="checkbox" id="id_cidade" value="<%=ObjRS_cidade("id_cidade")%>">
    </td>
    <td width="98%" class="td"><%=ObjRS_cidade("cidade")%></td>
  </tr>
</table>  
</td>
</tr>
<%
ObjRS_cidade.MoveNext
Loop
end if
%>
</table>
Agora eu não sei qual campo seria melhor para você usar...se o ID ou o nome dacidade em ambas as tabelas, acredito que seria mais funcional pelo nome. as duas formas:
<input name="id_cidade" <% if ObjRS_cidade("id_cidade") =  ObjRS_cadastro("id_cidade") then  checkL="checked" else checkL="" end if%> <%= checkL %> type="checkbox" id="id_cidade" value="<%=ObjRS_cidade("id_cidade")%>">
<input name="id_cidade" <% if ObjRS_cidade("nome_cidade") =  ObjRS_cadastro("nome_cidade") then  checkL="checked" else checkL="" end if%> <%= checkL %> type="checkbox" id="id_cidade" value="<%=ObjRS_cidade("id_cidade")%>">

espero ter te ajudado, mas caso não, passe a estrutura de sua tabela, se isto não te ajudar só vendo a estrutura de suas tabelas para te ajudar, faz um texto ai que simule a estrutura delas caso isto não te ajude.

Forte abrãço fica com Deus.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Ajudando por gostar de ajudar

voltei :rolleyes:

Olá voltei aqui para dar uma dica de como você pode ser mais claro em suas duvidas, será importante para você em seus próximos pedidos.

Descrevendo uma laranja:

Para leigos e pessoas com conhecimentos básicos.

Laranja é redonda e de cor a laranjada, quando corta a fruta é doce e o suco é de cor mais clara que a casca.

Para pessoas com um conhecimento mais aprofundado:

A laranja é um fruto híbrido, criado na antiguidade a partir do cruzamento do pomelo com a tangerina.

O sabor da laranja varia do doce ao levemente ácido. Freqüentemente, esta fruta é descascada e comida ao natural, ou espremida para obter sumo. As pevides (pequenos caroços duros) são habitualmente removidos, embora possam ser utilizados em algumas receitas.

Você nunca saberá quem te poderá ajudar, quanto mais detalhes tiver sua duvida melhor será sua resposta, antes de perguntar sobre programação você deve citar todos os pontos envolvidos ao caso, assim terá um resultado melhor em seu pedido de ajuda.

forte abraço, fica com Deus.

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...