Ir para conteúdo

Arquivado

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

fazeredo2002

Lista de checkbox usando Split

Recommended Posts

Bom dia a todos...

 

Estou com um projeto que, aparentemente, era simples e acabou se tornando uma dor de cabeça, que confesso está tirando o meu sono. Mas tenho certeza que com a ajuda de vocês seja possível resolvê-lo.

 

Vamos ao que interessa:

 

Segue uma estrutura de banco de dados como exemplo:

  • Tabelas (tbl_Cliente, tbl_Marcas)
  1. tbl_Cliente: id (auto-numeração), Nome (texto), MarcasAtivas (texto longo).
  2. tbl_Marcas: id (auto-numeração), Marca (texto).

 

Na página de inserção dos Dados segue o seguinte:

tbl_Marcas

ID

MARCAS

1

Volks

2

Ford

3

Chevrolet

4

Volvo

5

Fiat

 

tbl_Clientes

ID

CLIENTE

MARCASATIVAS

1

Teste1

1,3,5

2

Teste2

2,4

 

 

 

Agora vem o problema!

 

Preciso exibir todos as Marcas da tbl_Marcas e checkeed as marcas selecionada na tbl_Cliente.

Exemplo para o cliente Teste1:

Id: 1

Cliente: Teste1

MarcasAtivas: 

×

Volks

 

Ford

×

Chevrolet

 

Volvo

×

Fiat

 

Segue o código que estou usando até o momento:

<%
if rsClientes("MarcasAtivas") <> "" then
Dim texto, arrayTexto, i
Dim rs, sql, conexao
texto = (rsClientes.Fields.Item("MarcasAtivas").Value)
arrayTexto = Split(texto,",")

	set conexao = server.CreateObject("adodb.connection")
	set rs = server.CreateObject("adodb.recordset")
	
	localbd = MM_cnSystemBackstage_STRING
	conexao.open localbd

For i = 0 to Ubound(arrayTexto)

sql = "select id, MarcaAtivas from tbl_Marcas where id = "&arrayTexto(i)&""

rs.open(sql), conexao
Fabrica = rs("Fabrica")

response.Write("<input type='checkbox' name='txt_MarcasInternas' id="&arrayTexto(i)&" checked disabled='disabled'><label for="&arrayTexto(i)&"> "&Fabrica&"<br></label>")

rs.close()

next
end if

conexao.close()
set conexao = nothing
%>

Da forma descrita acima, só exibe as marcas selecionadas e não todas as marcas juntas.

Me ajude aí... please!

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá a modelagem do banco não está adequada o ideal seria ter uma tabela intermediária entre clientes e marcas... fazendo um muitos-para-muitos... mas da para resolver ... mas você quer montar um combo com as marcas ativas e por cliente ? seria por AJAX?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 14/03/2018 at 18:15, Gustavo Emygdio Barboza disse:

Olá a modelagem do banco não está adequada o ideal seria ter uma tabela intermediária entre clientes e marcas... fazendo um muitos-para-muitos... mas da para resolver ... mas você quer montar um combo com as marcas ativas e por cliente ? seria por AJAX?

Boa noite amigos!

 

Resolvi desta forma:

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="Connections/cnSystemBackstage.asp" -->
<%
Dim conexao, rsClientes, rsMarcas, localbd, sqlClientes, sqlMarcas
   
   Set conexao = Server.CreateObject ("ADODB.Connection")
   Set rsClientes = Server.CreateObject ("ADODB.RecordSet")
   Set rsMarcas = Server.CreateObject ("ADODB.RecordSet")
   localbd = MM_cnSystemBackstage_STRING
   
   Conexao.open localbd
   sqlClientes = "Select *from tbl_Clientes"
   sqlMarcas = "Select *from tbl_Marcas"
   
   rsClientes.open(sqlClientes), conexao
   rsMarcas.open(sqlMarcas), conexao
   
   
if rsClientes("MarcasAtivas") <> "" then

While NOT rsMarcas.EOF

Dim texto, arrayTexto, i, x, id_marca
texto = rsClientes("MarcasAtivas")
arrayTexto = Split(texto,",")

x=0
For i = 0 to Ubound(arrayTexto)
id_Marca = arrayTexto(i)
id_Marca = int(id_Marca)

if rsMarca("id") = id_Marca then
response.Write("<input type='checkbox' name='txt_Marcas' id='txt_Marcas' checked='checked' /><label for='txt_Marcas'> Marca = "&rsMarca("Fabrica")&"</p>")
x=x+1
end if
next
if x=0 then
response.Write("<input type='checkbox' name='txt_Marcas' id='txt_Marcas' /><label for='txt_Marcas'> Marca = "&rsMarca("Fabrica")&"</p>")
end if

rsMarca.MoveNext()
wend

rsClientes.close()
set rsClientes = nothing

rsMarcas.close()
set rsMarcas = nothing

conexao.close()
set conexao = nothing
%>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi mais simples que imaginei ... mas é isso ai... trabalhar com asp tem que ser criativo... rs... já o .NET tem recurso para tudo que acaba nos moldando fazendo agente seguir a mesma reta... o problema do ASP clássico é pegar projetos de outros para continuar... pois o estilo desenvolvimento pode mudar muito...

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por helkton
      iai galera, tenho uma pendenga e não consigo achar nada pra suprir minha dúvida rsss
      seguinte....
       
      Tenho um cardápio Online onde tenho os devidos ITENS sendo abertos em uma janela modal e nesta janela tenho os devidos ITENS EXTRAS em um checkbox que o usuario clicam e adicionam
      esta é minha lista de ADICIONAIS EXTRAS QUE PEGO DO BANCO DE DADOS 
       
      <label style="border:0px red solid;font-size:1em;width:90%;text-align:left;padding:0px;margin-left:2em;" onclick="somar()"> <input style="height:23px;width:23px;cursor:pointer" type="checkbox" class='limited<?php echo $resultExtrasDelivery->idExtraDelivery?>' id="valorItemExtra" name="idExtraSelects[]" value="<?php echo $resultItensExtras->valorItemExtra?>" > <span style="cursor:pointer"><?php echo $resultItensExtras->nomeItemExtra?> <span style="font-size:0.7em;color:#DD2C00"> <small> <?php if($resultItensExtras->valorItemExtra == '0.00'){echo'';}else{echo '+R$ '.$resultItensExtras->valorItemExtra.'<input type="text" value="'.$resultItensExtras->valorItemExtra.'">';}?></small> </span> </span> </label> ela vem tipo assim
      AcréscimoTradicional - Escolha até 3 opções
      BACON 1,00
      CALABRESA 1,00
      MUSSARELA 1,00
      PRESUNTO 1,00
      OVO 1,00
       
      o que quero fazer é somente somar os itens clicados pelo usuario e somar com o TOTAL DO ITEM 
      tipo pegar o total do item tipo R$30,00 e ir somando com os acrescimos escolhidos
       
      <script> function somar() { // var valorItem = document.getElementById('valorItemExtra').value; var checkbox = document.getElementById('#valorItemExtra'); var total = 0; if(checkbox.checked == true){ total += checkbox.value; } document.getElementById('somar').innerHTML = total; } </script>  
    • Por cesarhtc
      Boa tarde tenho uma aplicação que gera uma relação de dados como faço para exportar isso para pdf?
       
      Obrigado
    • Por vmenezes
      ola galera . tenho uma aplicação com asp  e utilizo javascript para bater foto do cliente . consigo apos a foto batida salvar no pc com o ID do cliente,
      porem gostaria que assim que a foto fosse batida salvasse na raiz do proprio site.
      tem como fazer isso ?
      obg
    • Por Sapinn
      Salve! Não consigo verificar se o checkbox foi marcado, isso não faz o menor sentido porquê aparentemente eu fiz tudo certo.
       
      HTML:
       <div class="mt-4 mb-3 row ">                 <label class="label_checkbox">Adicionar customização                   <input type="checkbox" id="checkbox" name="custom_shirt">                   <span class="checkmark"></span>                 </label>               </div>  
      JAVASCRIPT:
       let checkedCustomize = document.getElementById("checkbox");  if(checkedCustomize.checked){     alert("Checkbox marcado");  }else{      console.log("checkbox não marcado");  }  
    • Por Negrito
      Olá,
       
      Estou quebrando a cabeça com o recurso Session_OnStart , pois eu gostaria que algumas paginas/arquivos .asp tivessem exceções.
       
      Criei o Global.ASA com o seguinte contexto:
       
      <SCRIPT RUNAT=Server Language="VBScript">
      Sub Session_OnStart
        startPage = "/default.asp"
        currentPage = Request.ServerVariables("SCRIPT_NAME")
        If strcomp(currentPage,startPage,1) then
          Response.Redirect("/default.asp")
        End If
      End Sub
      </SCRIPT>
       
      Ele funciona perfeitamente, quando tento acessar qualquer pagina ou subdiretorio diretamente pela URL, ele me joga para a pagina inicial.
       
      Porem, eu gostaria de ter exceções em alguns diretorios e paginas .ASP , onde eu gostaria de liberar o acesso direto ao digitar a URL.
       
      Alguem sabe me informar se é possivel ? 
       
      Obrigado.
       
       
×

Informação importante

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