Combos aninhados
Algume poderia localizar o erro, esta como exemplo encontrado na net mais não funciona ou outra dica como utilizar
import br.com.globalcode.dao.ClientesDAO;
import java.io.*;
import java.util.Iterator;
import java.util.List;
import javax.servlet.*;
import javax.servlet.http.*;
public class CadastrarCliente extends HttpServlet {
protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String action = request.getParameter(action);
if(preencherCidades.equals(action)) {
String estado = request.getParameter(estado);
//Leitura da lista de cidades do BD
List cidades = ClientesDAO.getInstance().getCidades(estado);
if(cidades.size() > 0) {
response.setContentType(text/xml);
PrintWriter out = response.getWriter();
out.write(<?xml version=1.0 ?>);
out.write(<cid>);
for (Iterator it = cidades.iterator(); it.hasNext();){
Object elem = (Object) it.next();
out.write(<cida>+elem+</cida>);
}
out.write(</cid>);
}
} else {
//Codigo para cadastro de cliente no banco
}
System.out.println(Finalizando servlet);
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
}
<html>
<head>
<title>Exemplo AJAX</title>
<script type=text/javascript>
var request;
function sendRequest() {
//Determina o estado selecionado
combo = document.getElementById(estado);
estado = combo.options[combo.selectedIndex].value;
//Retorna quando nenhum estado for selecionado
if(estado == -1)
return;
//Monta a url de requisicao para o servidor
url = cadastrarCliente?action=preencherCidades&estado=
+ estado;
//Inicializa o objeto XMLHttpRequest para o Mozilla
if ( window.XMLHttpRequest ) {
request = new XMLHttpRequest();
}
//Inicializa o objeto XMLHttpRequest para o Internet Explorer
else if (window.ActiveXObject) {
request = new ActiveXObject(Microsoft.XMLHTTP);
}
//determina a função para processamento da requisição
request.onreadystatechange = processRequest;
//configura a requisição
request.open(GET,url,true);
//envia a requisição
request.send(null);
}
function processRequest() {
//Verifica se a resposta já foi recebida por completo
if(request.readyState == 4) {
//Verifica se o status é OK
if(request.status == 200) {
//Faz a leitura do documento XML recebido
var response = request.responseXML;
var raiz = response.getElementsByTagName(cida).item(0);
var cidades = raiz.getElementsByTagName(cida);
alert(cidades);
//Seleciona a caixa de selecao de cidades
var selectNode = document.getElementById(cidade);
//Apaga as opções atuais da caixa de seleção
selectNode.options.length = 0;
//preenche a caixa de opções com os valores recebidos
for(var i = 0; i < cidades.length; i++) {
var txtCidade = cidades.item(i).firstChild.data;
var option = new Option(txtCidade);
selectNode.add(option,null);
}
}
}
}
</script>
</head>
<body>
<h1>Cadastro de Clientes</h1>
<form action=<%=request.getContextPath()+/cadastrarCliente%>
method=post>
<fieldset><legend>Dados do cliente</legend>
<table>
<tr>
<td><label for=nome>Nome:</label></td>
<td colspan=3>
<input name=nome id=nome type=text
size=75 maxlength=255>
</td>
</tr>
<tr>
<td><label for=telefone>Telefone: (0000-0000)
</label>
</td>
<td><input name=telefone id=telefone
type=text size=16>
</td>
<td><label for=email>e-mail:</label>
</td>
<td><input name=email id=email type=text
size=37>
</td>
</tr>
</table>
</fieldset>
<fieldset>
<legend></legend>
<table>
<tr>
<td><label for=endereco>Rua/Av:</label></td>
<td><input name=rua id=rua type=text
size=40 maxlength=255>
</td>
<td><label for=numero>Número:</label></td>
<td><input name=numero id=numero type=text
size=8 maxlength=5>
</td>
</tr>
<tr>
<td><label for=bairro>Bairro:</label></td>
<td><input name=bairro id=bairro type=text>
</td>
<td><label for=cep>CEP (00000-000):</label>
</td>
<td><input name=cep id=cep type=text
size=8>
</td>
</tr>
<tr>
<td><label for=estado>Estado:</label></td>
<td>
<select name=estado id=estado
onchange=sendRequest();>
<option value=-1>Escolha um estado
</option>
<option value=MG>MG</option>
<option value=SP>SP</option>
<option value=RJ>RJ</option>
</select>
</td>
<td>
<label for=cidade>Cidade:</label>
</td>
<td><select name=cidades id=cidade
style=width:200px></select>
</td>
</tr>
</table>
</fieldset>
<input type=submit value=Salvar>
</form>
</body>
</html>
Ricardo Silva.
Curtidas 0
Respostas
Dyego Carmo
18/12/2011
Chegou a tentar utilizar CSS ao invez de formatar com tabelas ?
Isso costuma ser mais facil :)
Isso costuma ser mais facil :)
GOSTEI 0