Ajuda com html e jsp

6 respostas
G

pessoal,
antes de escrever olhei todos os topicos pra ver se não tinha um repitido, achei semelhantes, mas não ajudou.
então…

dentro de uma pag jsp tenho duas tags que listam horários, dessa forma
de: até

dentro da mesma pag, eu preciso usar os “values” dos dois pra montar uma consulta sql

a minha dúvida é: como eu faço pra adicionar o select1.value e select2.value dentro da minha
consulta sql (não esquecendo que é na mesma pág. jsp)? e de uma forma dinamica.
Pois o resultado da consulta vai montar uma outra tag dentro da pag.

acho que é simples, mas ainda não consegui fazer e é muito importante pra mim resolver isso !

esperando resposta

Gaby Neves

6 Respostas

Marlon_Meneses

olah!!
jah tive o mesmo problema!!
eu resolvi da seguinte forma:
no 1º select adicionei um evento OnChange q recarrega a pagina com o valor do intem do 1º select
entao depois preencho 0 2º select d acordo com a selecao do 1º
entendeu?

se quiser posso postar um exemplo

paulofernandesjr

Arquivo JS

function Dados(valor1, valor2) {
    var ajax = null
	try{
   	ajax = new ActiveXObject("Microsoft.XMLHTTP");
   }catch(e) {
   	try{
      	ajax = new ActiveXObject("Msxml2.XMLHTTP");
     	}catch(ex) {
      	try{
         	ajax = new XMLHttpRequest();
         }catch(exc) {
         	alert("Esse browser não tem recursos para uso do Ajax");
            ajax = null;
         }
      }
 	}
	if(ajax){
		 document.getElementById("<selectDestino>").options.length = 1;
		 idOpcao  = document.getElementById("<IdOptionDoSeuSelect>");
		 ajax.open("POST", "pagina.jsp", true);
		 ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		 ajax.onreadystatechange = function() {
       if(ajax.readyState == 1){
			   idOpcao.innerHTML = "Carregando...";
	    }
       if(ajax.readyState == 4 ){
		 	if(ajax.responseXML){
				processXML(ajax.responseXML);
			} else {
			  	idOpcao.innerHTML = "--";
			}
	   	}
 	}
	var params = "select1="+valor+"&select2="+valor2; // variaveis que passou por parametro
   	ajax.send(params);
   }
}
   
function processXML(obj){
	var dataArray   = obj.getElementsByTagName("nomeDoXML");
   if(dataArray.length > 0){
	   for(var i = 0 ; i < dataArray.length ; i++) {
   	   var item = dataArray[i];
	        // campos do seu xml
			var codigo    =  item.getElementsByTagName("id")[0].firstChild.nodeValue;
			var descricao =  item.getElementsByTagName("nome")[0].firstChild.nodeValue;
			idOpcao.innerHTML = "--";
			var novo = document.createElement("option");
			novo.setAttribute("id", "opcoes");
			novo.value = codigo;
			novo.text  = descricao;
			document.getElementById("<selectDestino>").options.add(novo);
		}
	} else {
		idOpcao.innerHTML = "--";
	}	  
}

Na sua página JSP você deve gerar um xml assim

String xml = "";

xml += "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
xml +=	"<qualquerNome>";
xml +=		"<xmlCriado>";
xml += 			"<id>conteudo do id que aparecerá no select destino</id>";
xml +=		    "<nome>nome que aparecerá no select destino</nome>";
xml +=        "</xmlCriado>";
xml +=	"</qualquerNome>";

System.out.println(xml);

acho que ajuda, mas não testei

abraço

edit.

pS: editado ai no evento do onchange do primeiro select você alimenta o segundo o no segundo, você chama essa função

G

marlon e paulo…

montar um a partir de parametro de outro eu entendi, até já fiz…
mas do jeito que eu tenho que fazer é jogar os valores do numa instrução <%SQL%>,
e a partir do resultado dessa consulta montar outro

entenderam?

paulofernandesjr

vamos lá!

você entendeu o que minha função faz?

na linha 20 ela diz para que página tem que ir!

na linha 34 os parametros que vai passar, esses parametros são passados pela função

entendeu?

G

paulo… desculpas :frowning:
não sei nada de ajax

mas vou estudar aqui pra ver se consigo entender e adequar ao que eu preciso…

muito obrigada
Gabriela

paulofernandesjr

Gabriela!

você sabe passar uma ação de um combo para outro

de forma bem simples

<input type="hidden" id="obj1" value="" />
<select id="obj2" name="obj2" onchange="document.getElementById('obj1').value = this.value;">
    <option value="">selecione</option>
    <option value="1">UM</option>
</select>

<select id="obj3" name="obj3" onchange="Dados(document.getElementById('obj1').value , this.value);">
    <option value="">selecione</option>
    <option value="2">DOIS</option>
</select>


<select id="obj4" name="obj4">
    <option id="qualquerId" value="">selecione</option>
</select>

é mais ou menos isso

abraço

Criado 23 de abril de 2008
Ultima resposta 24 de abr. de 2008
Respostas 6
Participantes 3