Ir para conteúdo

POWERED BY:

Arquivado

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

Martinsrj

[Resolvido] Dificuldade em popular a combo

Recommended Posts

Olá pessoal, boa noite!

Estou com um problema para resolver no sistema da empresa.

Em uma parte do sistema existe um formulário de alteração com vários inputs, combos, porem das três

 

combo que existe preenche automaticamente os demais campos.

Exemplo:

Usuario ao escolher a primeiro combo, a segunda combo é carregada ou populada e a terceira combo é

 

populada e os demais campos (inputs) são preenchidos com dados vindo do banco.

Foi criado ontem mais um campo nesse formulario, uma combobox. Essa combobox traz informação dos dados

 

do campo da tabela como os demais campo do formulario. A Combo box está mais ou menos assim:

<select name="combo_exemplo">

Response.Write "<option>" & Rs.fields("campo_tabela") & " MIN.</option>"

Response.Write "<option value=informacao1>informação 1</option>"

Response.Write "<option value=informacao2>informação 2</option>"

Response.Write "<option value=informacao3>informação 3</option>"

</select>

A situação é a seguinte: quando o formulário é carregado e traz a informação dessa combobox, exemplo:

traz com o dado informação 2, quando o usuario clicar na combo irá aparecer as opções:

informação 2

informação 1

informação 2

informação 3

Vejam que a combobox aparece duas vezes o mesmo dado e eu quero que apareça assim:

informacao 2

informação 1

informação 3

Estou tentando bolar algo, mas não estou conseguindo.

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa utilizar javascript para ajudar: Vou passar um código que utilizo muito:

 

Coloque isto chamando os arquivos que colocarei abaixo para chamar os arquivos JS.

 

<script type="text/javascript" language="javascript" src="js/jquery-1.2.1.pack.js"></script>

<script type="text/javascript" language="javascript" src="js/custom.js"></script>

 

 

Crie um arquivo com este nome e cole:

 

custon.js

 

function combo(de,para,pagina) {
    var de, para, pagina;
    if ($(de).val()!='0') { 
        $(para).empty().html('<option value="">... procurando ...</option>');
        $.post(pagina,
        { id : $(de).val()},
        function(resposta){
            $(para).empty().html(resposta);
        });
    } else {
        $(para).empty().html('<option value="">... selecione ...</option>');
    }
}

Crie outro arquivo com este nome e cole:

 

jquery-1.2.1.pack.js

 

Procura e Baixa neste link aqui:

 

http://code.google.com/p/jqueryjs/downloads/list

 

 

Este é um exemplo de combo que recebe os dados e propaga para o próximo, com isto você segue a lógica e consegue criar quantos combos quiser:

 

Faz um select do primeiro dado a ser consultado no primeiro combo

Set Rss = Server.CreateObject("ADODB.Recordset")
Rss.Open "SELECT * FROM Tabela ORDER BY nome DESC",Conexao
[code][/code]

Utiliza este combo aqui:
[code]
<select name="segmentos" class="txt" id="segmentos" onChange="combo('#segmentos','#subcategorias','combo_subcategorias.asp')">
                                <option selected="selected" value="0">... Selecione ...</option>
                                <% While NOT Rss.EoF %>
                                <option value="<% = Rss("id") %>">
                                <% = Rss("nome") %>
                                </option>
                                <% Rss.MoveNext %>
                                <% Wend %>
                              </select>
                            </span></td>
                          </tr>
                          <tr>
                            <td class="txt_cinza_11_bold">Especialidade:</td>
                            <td><select name="subcategorias" id="subcategorias" class="txt")">
                            </select>

[/code]
O primeiro combo chama um arquivo com o nome de combo_subcategorias.asp

Crie este arquivo utilizando o seguinte código:

Você deverá ter a segunda tabela recebedo o id da primeira tabela. Utilizo o INNER JOIN
[code]
<%
Dim Conexao
set Conexao=server.CreateObject("Adodb.Connection")
Conexao.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Caminho do banco de dados"

intID = request("id")

Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = Conexao
rs.Source = "SELECT 2tabela.nome, 2tabela.id FROM 1tabela INNER JOIN 2tabela ON 1Tabela.id = 2tabela.idTipo WHERE 2tabela.idda1Tabela=" & intID &""
rs.CursorType = 0
rs.CursorLocation = 3
rs.LockType = 1
rs.Open()

%>
<option value="0">..Selecione..</option>
<%while not rs.EOF%>
<option value="<%Response.Write(rs("id"))%>"><%=server.HTMLEncode(rs("nome"))%></option>
<%
rs.MoveNext
wend
rs.close
set rs = nothing			
%>

Vê aí se vai funfar..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Web Design Valdeci!

Uma observação: as três primeiras combos estão funcionando perfeitamente.

A minha fificuldade não tem sido para colocar em funcionamento elas. Mencionei o seguinte: as três primeiros funciona assim

O usuario escolhe um item na primeira combo e a combo a ser escolhida a segunda é carregada e esse procedimento é até a terceira, pois quando a terceira é selecionada todos os demais <input name="bairro" type="text" class="style" id="bairro" value="<%=rs.fields("bairro")%>" /> são carregados. O problema que eu estou tendo ficuldade é um dos campos que é uma combo box ao trazer dado do banco de dados e que acontece justamente isso:

Vamos supor que estaja gravado no bando o seguinte dado: informação 2

quando o usuario clicar na combo irá aparecer as opções:

informação 2

informação 1

informação 2

informação 3

Vejam que a combobox aparece duas vezes o mesmo dado (informação 2) e eu quero que apareça assim:

informacao 2

informação 1

informação 3

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique na hora de criar a ultima combo , se você est passando o valor k foi escolhido novamente nela

 

<select name="pais" size="1" Onchange="window.navigate('pag_atual.asp?pais='+frmteste.pais.value)"> 

<% while not rspais.eof%> 
<option value="<%=rs("cod_pais")%>"> 
<% if varpais=rs("pais") then 
response.write("Selecionado") 
end if%> 
<%=rs("nome")%> 
</option> 
<% rspais.movenext 
wend%> 
</select> 
<% set rspais=nothing%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acho que consegui pegar a ideia, irei tentar implementar agora.

Abraços.

 

verifique na hora de criar a ultima combo , se você est passando o valor k foi escolhido novamente nela

 

<select name="pais" size="1" Onchange="window.navigate('pag_atual.asp?pais='+frmteste.pais.value)"> 

<% while not rspais.eof%> 
<option value="<%=rs("cod_pais")%>"> 
<% if varpais=rs("pais") then 
response.write("Selecionado") 
end if%> 
<%=rs("nome")%> 
</option> 
<% rspais.movenext 
wend%> 
</select> 
<% set rspais=nothing%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, naun se eskça k existem outros exemplos no lab. de script

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Xanburzum, consegui fazer dessa forma:

Código HTML

<select name="comboTicoteco " id="comboTicoteco "> 
  		      <option selected=selected>Selecione uma opção</option>
                      <option value="inf1">Informação 1</option>
                      <option value="inf2">Informação 2</option>
                      <option value="inf3">Informação 3</option>
                      <option value="inf4">Informação 4</option>
</select>
Abaixo segue o código JavaScript

<script language="javascript" type="text/javascript">
var comboTicoteco = document.getElementById("nomedacombobox");
for (i = 0; i < comboTicoteco .length; i++){
	if (comboTicoteco (i).value == "<%=funciona.fields("campodobanco") %>") {
		comboTicoteco .selectedIndex = i;
	}
}

</script>

beleza, naun se eskça k existem outros exemplos no lab. de script

 

Abraços e fique todos com DEUS.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza

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.