Preencher combobox com Ajax

10 respostas
T

Pessoal, estou precisando fazer os famosos combobox aninhados, ou seja,
quando o usuário seleciona um valor em combo pai eu preenche um outro
combo com valores relacionados.
Imagino que tenho fazer isso com ajax, dei uma olha aqui no forum e o pessoal
normalmente usa algum framework. Eu estou usando Struts + JSP + Expression Languages. Gostaria de saber
como posso fazer isso.

Agradeço a ajuda

10 Respostas

viniciuspadua

como usa struts utilize o jQuery. Muito bom! De uma olhada nos links!

http://code.google.com/p/struts2-jquery/

T

Cara, vlw pelo site.
To dando uma olhada. Assim que der certo coloco como resolvido, ou post qualquer
dificuldade novamente.

abraços

T

Cara,
qual daqueles arquivos devo adicionar no meu projeto?
E como importo eles na minha página jsp?

Abraços

viniciuspadua

no mínimo tem que colocar esse: struts2-jquery-plugin-2.3.1.jar

struts2-jquery-grid-plugin-2.3.1.jar - Serve para utilizar o grid

struts2-jquery-richtext-plugin-2.3.1.jar - Serve para o componente de edição de texto.

na JSP:

<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
Extreme_X

DWR

T

Cara, valeu a ajuda.
Abraços

T

Vinicius,
você chegou a usar o exemplo do site achei algo exatamente como eu queria indo em
Ajax forms e depois em Ajax Select (doubleselect). No entanto não consegui fazer
funcionar na minha página.

Se puder me ajudar.

Abraços

T

Pessoal, consegui resolver meu problema.
Descobri que além de adicionar as taglibs
você precisa adicionar essa linha <sj:head jqueryui=“true” locale=“pt” />
no cabeçalho.

Abraços

batista.gerson

thiagosf88 Desculpa depois de muito tempo reabrir esse post ,mas você poderia postar a solução por favor.

T

Cara, eu resolvi assim:

Código da página jsp:

<tr><td>Empresa</td>                            
                            <td>
                            <s:url id="remoteurl" action="dependenciaEmpresa"/> 
                            <sj:select href="%{remoteurl}" id="estagio.idEmpresa" 
        					name="estagio.idEmpresa"
        					onChangeTopics="reloadsecondlist"        					
        					list="map"
        					headerKey="-1" 
        					headerValue="Selecione a empresa" cssStyle="width: 305px;"/>
                            </td>
                            </tr>
                            <tr><td>Supervisor</td> 
                            <td><sj:select 
                                href="%{remoteurl}" 
                                id="selectWithReloadTopic" 
                                formIds="adicao" 
                                reloadTopics="reloadsecondlist" 
                                name="estagio.idSupervisor" list="map2" 
                                headerKey="-1" 
                                headerValue="Selecione o supervisor" cssStyle="width: 305px;"/></td>
                            </tr>

Código da Action:

@Actions({ @Action(value = "/dependenciaEmpresa", results = { @Result(name = "sucesso", type = "json") }) })
	public String execute() {
		
		map = new HashMap<String, String>();
		map2 = new HashMap<String, String>();

		new EmpresaDAO().getMap1(map);
		
		if(estagio.getIdEmpresa() != null){
                        //método que preenche o segundo hasp map de acordo com o valor selecionado no primeiro
			new SupervisorDAO().getSupervisorPorEmpresa(estagio.getIdEmpresa(), map2);

		}
		
		return "sucesso";
	}

Qualquer dúvida é perguntar aqui.

O primeiro combobox(empresa) determina o que vai ser preenchido no segundo. Mas só consegui usando Map.

Abraço

Criado 24 de agosto de 2010
Ultima resposta 1 de out. de 2010
Respostas 10
Participantes 4