Jump to content
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!

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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
%>

 

Share this post


Link to post
Share on other 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...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Inside
      Olá amigos,
       
      Eu estou precisando de uma paginação ASP que exiba tipo de 1 até 3 páginas e depois Próxima Página ou de 1 até 6 depois Próxima Página. De 3 em 3 ou ou de 6 em 6.
       
      Alguém já viu algum exemplo desse tipo?
       
      Paginação, 1 2 3 próxima
       
      Eu procurei na web não achei nada do tipo em ASP. Aqui no fórum também não achei.
       
      Obrigado pela atenção.
    • By Ronaldo Bueno
      Pessoal, preciso de uma ajuda pf.
       
      estou com um problema que não sei resolver...
       
      no meu IIS eu fiz o seguinte:
       
      Na configuração de recurso coloquei como erro detalhado em local e personalizado remoto
      e configurei a página de erro 404 da seguinte forma
       
      Raiz: /index.asp
      Pasta: /Ze/index.asp
       
      quando eu acesso as url:
      https://www.dominio.com.br/zezinho Erro not found
       
      https://www.dominio.com.br/Ze/zezinho Acessa o conteúdo da index.asp (o que eu justamente configurei no IIS)
       
      Nenhuma das paginas zezinho existe; a pasta Ze existe  
      porque a primeira url não acessa minha index.asp (da raiz) e a segunda acessa a index.asp dentro da pasta?
       
      Seria muito grato e bem vindo qualquer ajuda. Obrigado
    • By FERREIRA FILHO
      Estou tentando fazer um update de vários registros com checkbox, mais não está atualizando no banco de dados MySQL. Segue o meu código, desde já agradeço!
       
      <?php 
      include_once("../config/conexao.php");

      $nivel = $_SESSION['nivel'];
         
      if ($_SESSION['nivel'] == 4)
          {
      $sql = "SELECT ID, NOME, VOLUNTARIO FROM cidadao ORDER BY NOME";
      $res = mysql_query($sql) or die (mysql_error() );
      if (mysql_num_rows($res) > 0 )
      echo '<form method="post">';
      ?>
      <table width="431" border="0" align="center" cellpadding="0" class="bordaFina">
          <tr bgcolor="#999999" >
            <td width="302" align="center" valign="middle" bgcolor="#F0F0F0" class="style27">Nome  </td>
            <td width="123" align="center" valign="middle" bgcolor="#F0F0F0" class="style27">Voluntário</td>
          </tr>
          <?php
      while ($row = mysql_fetch_assoc($res))
          {     
          ?>
          <tr >
            <td><?php echo $row["NOME"];?></div></td>
        <td ><div align="center"> 
       <input type="checkbox" name= "VOLUNTARIOS[<?php  $row["ID"] ?>]" value="1" <?php if($row["VOLUNTARIO"] == 1){ echo "checked";} ?>> 
       <input type="hidden" name= "VOLUNTARIOS[<?php $row["ID"] ?>]" value="0" <?php if($row["VOLUNTARIO"] == 0){ echo ""; }  ?>>
        </div></td>
        </tr>
          <?php 
        }  //End While
        ?>
      </table>
        
      <p><div align="center"><?php echo '<input type="submit"name= "submit" value= "Salvar">';?></div>
        <?php
      if (isset ($_POST["submit"]))
      {        
              foreach($_POST['VOLUNTARIOS'] as $ID => $VOL) 
                {mysql_query("update cidadao SET VOLUNTARIO ='$VOL' WHERE ID='$ID'")or die(mysql_error()); }                    
                 echo "<meta HTTP-EQUIV='refresh' CONTENT='1;URL=teste.php'>";
      }
      ?>
      <?php
      echo'<br>';
      echo '</form>';
      }//endif
      ?>
       

    • By Diego-SLP
      Boa tarde,
       
      Gostaria de uma ajuda pra elaborar uma tela do meu sistema, existem registros no banco o qual uma pessoa cadastra e depois a outra vai atualizando preços, porém é muito cansativo editar um por um, gostaria de trazer estes registros na tabela de busca e apos marcaro checkbox o campo virar editavel, assim marcaria X campos, colocaria o valor deles e executaria o update dos mesmos, ou, se voces tiverem uma logica mais facil eu aceito kkk
       
      Obrigado
    • By Giovanird
      Olá amigos!
      Tenha a seguinte estrutura no banco MySQL
      COD   |   PONTOX  |  PONTOY  |  ATLETAX       |  ATLETAY
      1         |   0               |  1               |  Maria              |  João
      2         |   2               |  0               |  João               |  Maria
      3         |   0               |  2               |  Maria              |  João
      4         |   7               |  5               |  Maria              |  João
      5         |   0               |  3               |  João               |  Maria
      6         |   2               |  1               |  João               |  Maria
      7         |   0               |  6               |  Maria              |  João
      8         |   4               |  0               |  João               |  Maria
       
      Preciso de ajuda para somar quantos pontos fez o atleta João nos últimos 5 torneios (COD 8, 7, 6, 5 e 4)  Há momento que o João jogou em X e outro momento em Y.
      Abaixo segue meu Select, onde a soma dos pontos deve ser 17.
       
      nomeatleta = "João"
      Set soma= banco.execute("SELECT sum(PONTOX ) AS somax,  sum(PONTOY ) AS somay FROM (select cod, pontox, pontoy, atletax, atletay  from torneios where (atletax like '"&nomeatleta&"' or atletay like '"&nomeatleta&"') order by cod desc limit 5) AS temp")
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.