Ir para conteúdo

Arquivado

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

Frango

Valores de Selects Dinâmicos

Recommended Posts

Seguinte galera,Tenho um formulário, com 2 selects e 1 btn de OK. Esses 2 selects são dinâmico, o segundo só aparece se o primeiro for selecionando.beleza até aí OK. O problema é o seguinte o usuario seleciona uma opção no primeiro select, aí aparece opções correspondentes no segundo select, aí ele seleciona a opção que ele deseja e cliica em OK.Agora como eu vou mostrar em outra pagina o que o usuário selecionou?Exemplo: 1º Select ) Identidade Visual 2º Select ) Cliente X 3º) Clica OK Resultado = Aparecer todos os trabalhos de Identidade Visual do Cliente XTente aki mas naum deu muito certo, alguem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza AAlves,

 

Mas aquiele exemplo foi pra carregar os combos certo?

 

Isso eu já consegui, eu naum to conseguindo é mostrarná pagina o resultado. Segue o Código:

 

Pagina que seleciona:

 

<form action="mostra_portfolio.asp" method="post">	 <label for="categoria">Projeto: </label>	 <select name="marcas" class="select_projeto" onchange="javascript:atualizacarros(this.form);">	  <option>Selecione o projeto</option>	  <% while not rscategoria.eof %>	  <option value="<% response.write(rscategoria("id")) %>"><% response.write(rscategoria("categoria")) %></option>	  <% 		rscategoria.movenext 		wend	  %>	 </select>	 <label for="cliente">Cliente: </label>	 <select name="carros" class="select_cliente">	  <option>Selecione o cliente</option>  	 </select>	 <input type="submit" value="Ok" class="btn_ok_portfolio" />	</form>

mostra_portfolio.asp

 

<%    categoria = Request.Form("marcas")  cliente = Request.Form("carros")    set conn = Server.CreateObject("ADODB.Connection")  set rs = Server.CreateObject("ADODB.Recordset")    x = Server.Mappath("bd/bd.mdb")  obj = "driver={Microsoft Access Driver (*.mdb)};DBQ=" & x  conn.Open obj    mostraport = "select * from portfolio where categoria = "(categoria)" and cliente = "(cliente)""  set rs = conn.execute (mostraport)    conn.close  Set rs = nothing    response.redirect("portfolio_detalhe.asp?&id=response.write(rs("id"))")%>

Tá até mostrando só que mostra só primeiro registro do banco, independente de eu selecionar alguma coisa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá até mostrando só que mostra só primeiro registro do banco, independente de eu selecionar alguma coisa

Isso pq o valor do form do primeiro select naum existe mais...

para isso, grave o valor do primeiro select em um input oculto na página mostra_portfolio.asp ... dae você recupera o valor de input na página que você quer mostrar o que foi selecionado...

sem erro...

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu entendi muito mais ou menos.

 

Mas assim já estou gravando o valor do primeiro input nesta pagina

 

<%    categoria = Request.Form("marcas") <----- 1º Select  cliente = Request.Form("carros")    set conn = Server.CreateObject("ADODB.Connection")  set rs = Server.CreateObject("ADODB.Recordset")    x = Server.Mappath("bd/bd.mdb")  obj = "driver={Microsoft Access Driver (*.mdb)};DBQ=" & x  conn.Open obj    mostraport = "select * from portfolio where categoria = "(categoria)" and cliente = "(cliente)""  set rs = conn.execute (mostraport)    conn.close  Set rs = nothing    response.redirect("portfolio_detalhe.asp?&id=response.write(rs("id"))")%>

 

Se puder digita ro codigo, eu entendo melhor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu entendi muito mais ou menos.

 

Mas assim já estou gravando o valor do primeiro input nesta pagina

 

<%    categoria = Request.Form("marcas") <----- 1º Select  cliente = Request.Form("carros")    set conn = Server.CreateObject("ADODB.Connection")  set rs = Server.CreateObject("ADODB.Recordset")    x = Server.Mappath("bd/bd.mdb")  obj = "driver={Microsoft Access Driver (*.mdb)};DBQ=" & x  conn.Open obj    mostraport = "select * from portfolio where categoria = "(categoria)" and cliente = "(cliente)""  set rs = conn.execute (mostraport)    conn.close  Set rs = nothing    response.redirect("portfolio_detalhe.asp?&id=response.write(rs("id"))")%>

Se puder digita ro codigo, eu entendo melhor

É o seguinte cara...

vou citar um exemplo...

você tem um form na pagina1.asp

depois de selecionado... chama a pagina2.asp... que tem o outro select...

pra recuperar o valor do 1º select na pagina2.asp... é só dar um Request.Form básico... naum é???

pois é... dae você seleciona o select da pagina2.as e envia para pagina3.asp... dae se você quizer recuperar o valor do select da pagina2.asp... naum tem problema... mas o valor do select da pagina1.asp já naum existe mais...

para você recuperar esse valor (apesar de ter 'n' maneiras) eu recomendo que na pagina2.asp você recupere o valor do primeiro select... como você tá recuperando... e grave ele em um campo oculto do formulário... tipow... <input type="hidden" name="PrimeiroSelect" value="<%= variavel %>">

ae na pagina3.asp você recupera esse valor... tipow... <%= Request.Form("PrimeiroSelect") %> ...

 

entendeu??? http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

OBS: cara... eu tava aqui prestando atenção em seu código... eu já o vi em algum lugar... se naum me engano foi em um artigo aqui do imasters... e se eu naum estou enganado... (apesar de naum está vendo todo o código) o conteúdo do segundo select é preenchido por javascript... naum é???

se for... esqueça tudo que eu disse.... hehehe :P

mas em compensação tb deveria está recuperando o valor normalmente.... :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, dê uma pesquisada por AJAX aqui mesmo que creio que te ajudará bastante. Qualquer coisa avisa que ajudamos a refazer esse código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amon-HáOs 2 selects estão na mesma pagina. Naum tem como eu recuperar ovalor de um select na outra pagina q tem o segundo select, os 2 estao na mesma página.E sim, o segundo select é preenchido via JavaScriptSalgado,Naum sei nada de Ajax se eu for procurar por Ajax vou me embaralhar mais ainda.Se puder me ajudar a refazer, com certeza será melhor pq vou entender passo a passo. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amon-Há

 

Os 2 selects estão na mesma pagina. Naum tem como eu recuperar ovalor de um select na outra pagina q tem o segundo select, os 2 estao na mesma página.

 

E sim, o segundo select é preenchido via JavaScript

Tá... beleza...

agora me diz uma coisa... no primeiro select você quer recuperar o valor da categoria ou do id...???

perceba que você está passando o valor do id pro primeiro select...

<option value="<% response.write(rscategoria("id")) %>"><% response.write(rscategoria("categoria")) %></option>

entao me responde uma coisa... na pagina dois você naum consegue recuperar NADA do primeiro select...???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu passei o ID da categoria pq, na tebela portfolio o campo categforia esta preenchicom os ids

naum... tudo bem que seja necessário...mas sobre a pergunta que te fiz... você naum consegue recuperar NADA do primeiro select na segunda pagina??? nem esse ID???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá então. Coloque "de lado" esses arquivos que está usando (crie cópias para backup) e vamos ao AJAX:

1º - Você vai precisar do seguinte arquivo: ajaxInit.js que contém o seguinte código:

function ajaxInit() {
var req;

try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
try {
 req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(ex) {
 try {
  req = new XMLHttpRequest();
 } catch(exc) {
  alert("Esse browser não tem recursos para uso do Ajax");
  req = null;
 }
}
}

return req;
}

É ele que criará a "mágica" em seu código.

 

2º - Acrescente entre as Tags <head></head> de seu HTML:

<script src="ajaxInit.js" language="javascript" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
function AtualizaCarros() {
Marcas = document.getElementById("Marcas").value;
document.getElementById("Carros").innerHTML = '<font color="red">Carregando...</font>';
ajax = ajaxInit();
if(ajax) {
  ajax.open("GET", "Retorna_Carros.asp?Marcas=" + Marcas, true);
  ajax.onreadystatechange = function() {
 if(ajax.readyState == 4) {
   if(ajax.status == 200) {
	 document.getElementById("Carros").innerHTML = ajax.responseText;
   } else {
	 alert(ajax.statusText);
   }
 }
  }
  ajax.send(null);
}
}

Repare que existe um Retorna_Carros.asp no meio desse "bolo", caso você já possua algum script que te retornava os dados do Select adapte ele para retornar o Select completo e troque o nome lá.

 

3º - Seu Form ficará +/- assim:

	<form action="mostra_portfolio.asp" method="post">
 <label for="categoria">Projeto: </label>
 <select name="marcas" id="Marcas" class="select_projeto" onchange="AtualizaCarros();">
  <option>Selecione o projeto</option>
  <% while not rscategoria.eof %>
  <option value="<% response.write(rscategoria("id")) %>"><% response.write(rscategoria("categoria")) %></option>
  <%
	rscategoria.movenext
	wend
  %>
 </select>
 <label for="cliente">Cliente: </label>
 <Div id="Carros"><select name="carros" class="select_cliente">
  <option>Selecione o cliente</option>  
 </select></DIV>
 <input type="submit" value="Ok" class="btn_ok_portfolio" />
</form>

Faz essas alterações e vamos testando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pow acho q to recuperando sim cara.....joguei os 2 valores em variaveis

 

categoria = Request.Form("marcas") <--- Select 1  cliente = Request.Form("carros")	  <--- Select 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pow acho q to recuperando sim cara.....joguei os 2 valores em variaveis

categoria = Request.Form("marcas") <--- Select 1  cliente = Request.Form("carros")	  <--- Select 2
pois é cara... agora se você quer mostrar o nm da categoria para o usuario... vai ter que chamar o banco dnovo com o valor do id que você tem ae...valeu... até a próxima... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entaum,

 

Se liga eu naum quero mostra o nome da categoria eu quero mostra o dados inteiros dessa linha da tabela onde tem essa categoria e esse cliente sakou

 

<%    categoria = Request.Form("marcas")  cliente = Request.Form("carros")    set conn = Server.CreateObject("ADODB.Connection")  set rs = Server.CreateObject("ADODB.Recordset")    x = Server.Mappath("bd/bd.mdb")  obj = "driver={Microsoft Access Driver (*.mdb)};DBQ=" & x  conn.Open obj    mostraport = "select * from portfolio where categoria = "(categoria)" and cliente = "(cliente)""  set rs = conn.execute (mostraport)    conn.close  Set rs = nothing    response.redirect("portfolio_detalhe.asp?&id=response.write(rs("id"))")%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae galera.

 

Eu não sabia que podia ser assim nao:

mostraport = "select * from portfolio where categoria = "(categoria)" and cliente = "(cliente)""

Pode???? ASP aceita esta sintaxe??? Puts. se não for esta a origem do erro eu acabei de aprender uma sintaxe nova. sério.

 

Pra mim eu sempre usei desta forma:

mostraport = "select * from portfolio where categoria LIKE '" & categoria & "' and cliente LIKE '" & cliente & "'"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi o q eu fiz como você pode ver no codigo acima, certo?

naum... faça um select... tipow...SQL = "SELECT * FROM tabela WHERE ID = '" & varID & "'"NomeConexao.Execute(SQL)coisa do tipo...flw... qualquer dúvida o pessoal te ajuda ae... tô vazando...valeu... espero ter ajudado... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Micox (malandrão programador ASP)Se naum for pra ajudar....fica no sapato....se eu soubesse ASP igual a você naum estaria aki perguntandoja é

Compartilhar este post


Link para o post
Compartilhar em outros sites

Micox (malandrão programador ASP)Se naum for pra ajudar....fica no sapato....se eu soubesse ASP igual a você naum estaria aki perguntandoja é

Heheh. cara, não entendi sua colocação: Foi uma crítica? uma reclamação? uma resposta? uma ironia? um elogio? ou você fez o que eu sugeri e deu certo?Sério mesmo. Não entendi.PS.: Continuo com a mesma dúvida. Pode colocar daquele jeito? É só alguem falar sim ou nao. Valeus...

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.