ArrayList

Bom dia galera,

Eu estou com um problema, é o seguinte:

Eu tenho um arraylist onde pega valores do banco, o problema é o seguinte, tenho duas tabelas, uma com letras e outra tabela com numeros, na pagina web tenho dois selevtonelistbox onde cada qual correspondete ao seu banco o que eu quero fazer e não estou conseguindo é fazer com que: exemplo quando escolhe a opçao A de um listbox apareca o numero 1,2 e 3 e quando eu escolhesse a opcao B aparecesse os numeros 5, 6 e 7.

tenho esse arraylist


 public List<SelectItem> getDivi() throws SQLException{
	PreparedStatement st;
	ResultSet rs = null;
	Connection Conn = Ascessando.getConnection();
List<SelectItem> opcao2 = new ArrayList<SelectItem>();
try{
st = Conn.prepareStatement("SELECT  numero,descricao FROM divisao WHERE fsecao='1' order by numero");
 while (opcao2.equals("B")){
	  st = Conn.prepareStatement("SELECT numero,descricao FROM divisao WHERE fsecao='2' oder by numero");
	st.executeUpdate("SELECT  numero,descricao FROM divisao WHERE fsecao='2' order by numero");
			 }
			 st.execute();
			 rs = st.executeQuery();
			 while (rs.next()){
		         opcao2.add(new SelectItem(rs.getString("descricao"),rs.getString("numero") ) ); 
			 }
			System.out.println("Selecionado com Sucesso");
			st.close();
			Conn.close();
		}catch (Exception e) {
			e.printStackTrace();
		}

		return opcao2;
	}

Alguem poderia me ajudar???

é meio dificil…
mas
fsecao=‘1’ deve ter só 1,2,3
fsecao=‘2’ deve ter só 4,5,6
na sua tabela…

e uma OBS.: seu codigo é esquisito… :twisted:

Não entendi onde no seu código você faz o algoritmo que precisa.

De qualquer forma, na linha 08 a condição do while será veradeira quando o ArrayList for igual à string “B”.

Uma forma mais simples de abordar este problema é selecionar todos os dados e jogar tudo no JavaScript.
Por exemplo, com Velocity ficaria algo como:

var array = [ #for( $item in $array ) { letra: "$item.letra", numero: "$item.numero" }, #end ]
O que imprimiria algo como:

var array = [ { letra: "A", numero: "1" }, { letra: "A", numero: "2" }, { letra: "A", numero: "3" }, { letra: "B", numero: "4" }, ... ]
Desta forma seria muito mais simples para que, no onchange do primeiro select, populasse o segundo com os dados pertinentes.

baudamix eh isso mesmo pq o fsecao eh uma chave estrangeira

e Filipe
o codigo que eu preciso eu tentei fazer assim

st = Conn.prepareStatement("SELECT  numero,descricao FROM divisao WHERE fsecao='1' order by numero");
                while (opcao2.equals("B")){
 st = Conn.prepareStatement("SELECT numero,descricao FROM divisao WHERE fsecao='2' oder by numero");
	st.executeUpdate("SELECT  numero,descricao FROM divisao WHERE fsecao='2' order by numero");

ele seleciona numero from divisao where fsecao=‘1’ e eu tentei fazer que qnd a opcao for equals(“B”)
ele selcionasse numero da divisão quando fsecao = 2 entendeu???

bem como eu creio sua tabela deve estar assim no bancodados por isso o resultado… o select está certo, mas skisito…
tenta assim…

[code]String i = opcao2.equals(“B”) ? “1” : “2”;

String sql = “SELECT numero,descricao FROM divisao WHERE fsecao=’” + i +"’ order by numero";
st = Conn.prepareStatement(sql);
rs = st.executeQuery(); [/code]