[RESOLVIDO] Preencher formulário, após selecionar um cliente na comboBox

Galera, estou com uma dúvida cruel, já fiz algumas pesquisa mais não encontrei nenhum solução.

Na minha página JSP, eu tenho uma Combo que é populada com informações do cliente que vem do BANCO DE DADOS, Nome, cpf, etc.
Preciso que ao selecionar um cliente na combobox, ele preencha os campos <input type="text> com as informações do cliente selecionado.

Acredito que isso seja com JavaScript.

Alguém já precisou disso ?

Vai precisar de javascript para identificar o evento ocorrido e de ajax para realizar o processo de busca no servidor.

Eu não estou usando Ajax, só funciona com Ajax ?

Estou usando JSP, JDBC e Servlet.

at.

Sem ajax vai ser um trabalho muito duro.
Ajax garantiria que requisições assíncronas seriam feitas, permitindo que você buscasse os dados de cada cliente.
Sem isso, até da para fazer, mas é bem mais complicado.

Obrigadão,

Para finalizar, conhece algum material bom para aprender a trabalhar com Ajax ?

Ajax e java, não lembro não.
Sugiro fazer usando javascript puro, esse primeiro exemplo. Depois que entender como funciona, opte por algo como jQuery.

Graças ao nosso amigo drsmachado… eu entendi que eu estaria te atrapalhando… Agora entendi… Desculpe.

Use ajax.!

[quote=rsmoraes]Cara, eu fiz aqui rapidinho pra você… fiz com scriptlet mesmo a sua duvida… acredito que vai te adiantar bastante… da uma olhada aí…

Index

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@page import="entity.*, persistence.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>

<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>

<script>
	function consultaDados() {
		
		$.ajax({

			url : 'dadosPessoa.jsp',
	
			dataType : 'html',
			
			data      : 'idPessoa='+document.getElementById("pessoa").value,
			
			type : 'POST',

			beforeSend : function() {

				//o que ele faz antes de enviar
		
			},

			complete : function() {

				//o que ele faz ao completar a requisição
							
			},

			success : function(data, textStatus) {
								
				//o que ele faz se a requisição teve sucesso
				$("#consultaDados").html(data); // Os dados da página dadosPessoa.jsp ficará dentro desta div 
				openboxConsulta('Consulta Pessoa', 1);
												
			},

			error : function(xhr, er) {

				jAlert(er + '        ' + xhr.statusText + '           '
						+ xhr.status, 'Error');

			}

		});

	}
</script>

</head>
<body>

<select id="pessoa" name="idPessoa" onchange="consultaDados();">

<%
	PessoaDao pd = new PessoaDao();
	for(Pessoa p : pd.findAll()){
%>
	
	<option value="<%=p.getIdPessoa() %>"><%=p.getNome() %></option>

<%
	}
%>

</select>


<div id="consultaDados"></div>

</body>
</html>

DadosPessoa

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@page import="entity.*,persistence.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<%
	Integer idPessoa = new Integer(request.getParameter("idPessoa"));
%>


<table border="1">
	<tr>
		<td>IdPessoa</td>
		<td>Nome</td>
	</tr>
	
		<%
			PessoaDao pd = new PessoaDao();
			Pessoa p = pd.findPessoaById(idPessoa);
		%>
	
		<tr>
		<td><%=p.getIdPessoa()%></td>
		<td><%=p.getNome()%></td>
		</tr>
	
</table>

</body>
</html>

Método findPessoaById


public Pessoa findPessoaById(Integer idPessoa) throws Exception {

		open();
		Pessoa p = null;

		stmt = con.prepareStatement("select * from pessoa where idPessoa = ?");
		stmt.setInt(1, idPessoa);
		rs = stmt.executeQuery();

		if (rs.next()) {

			p = new Pessoa(rs.getInt("idPessoa"), rs.getString("nome"));

		}

		close();
		return p;
	}

Qualquer dúvida… posta aí! abraços![/quote]
Aí quando o chefe dele passar uma tarefa para ele desenvolver, você vai fazer para ele?

O problema de fazer código pronto para quem pergunta é que você não está ajudando, como pensa. Está atrapalhando.
Ele precisa entender por que precisa de ajax, como ajax funciona, de que forma ele pode ser utilizado e uma série de coisas.
De cara já sair usando jQuery é algo que não gosto, pois sem saber como fazer “na mão”, ele não entenderá a “mágica” que rola.
“Ah, o drsmachado é cruel e antiquado”, pode ser. Mas eu prezo pelo conhecimento. Sem essa parte de sofrer, errar e pesquisar, o conhecimento é muito volátil. Você se torna dependente de “colas”.

[quote=drsmachado][quote=rsmoraes]Cara, eu fiz aqui rapidinho pra você… fiz com scriptlet mesmo a sua duvida… acredito que vai te adiantar bastante… da uma olhada aí…

Index

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@page import="entity.*, persistence.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>

<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>

<script>
	function consultaDados() {
		
		$.ajax({

			url : 'dadosPessoa.jsp',
	
			dataType : 'html',
			
			data      : 'idPessoa='+document.getElementById("pessoa").value,
			
			type : 'POST',

			beforeSend : function() {

				//o que ele faz antes de enviar
		
			},

			complete : function() {

				//o que ele faz ao completar a requisição
							
			},

			success : function(data, textStatus) {
								
				//o que ele faz se a requisição teve sucesso
				$("#consultaDados").html(data); // Os dados da página dadosPessoa.jsp ficará dentro desta div 
				openboxConsulta('Consulta Pessoa', 1);
												
			},

			error : function(xhr, er) {

				jAlert(er + '        ' + xhr.statusText + '           '
						+ xhr.status, 'Error');

			}

		});

	}
</script>

</head>
<body>

<select id="pessoa" name="idPessoa" onchange="consultaDados();">

<%
	PessoaDao pd = new PessoaDao();
	for(Pessoa p : pd.findAll()){
%>
	
	<option value="<%=p.getIdPessoa() %>"><%=p.getNome() %></option>

<%
	}
%>

</select>


<div id="consultaDados"></div>

</body>
</html>

DadosPessoa

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@page import="entity.*,persistence.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<%
	Integer idPessoa = new Integer(request.getParameter("idPessoa"));
%>


<table border="1">
	<tr>
		<td>IdPessoa</td>
		<td>Nome</td>
	</tr>
	
		<%
			PessoaDao pd = new PessoaDao();
			Pessoa p = pd.findPessoaById(idPessoa);
		%>
	
		<tr>
		<td><%=p.getIdPessoa()%></td>
		<td><%=p.getNome()%></td>
		</tr>
	
</table>

</body>
</html>

Método findPessoaById


public Pessoa findPessoaById(Integer idPessoa) throws Exception {

		open();
		Pessoa p = null;

		stmt = con.prepareStatement("select * from pessoa where idPessoa = ?");
		stmt.setInt(1, idPessoa);
		rs = stmt.executeQuery();

		if (rs.next()) {

			p = new Pessoa(rs.getInt("idPessoa"), rs.getString("nome"));

		}

		close();
		return p;
	}

Qualquer dúvida… posta aí! abraços![/quote]
Aí quando o chefe dele passar uma tarefa para ele desenvolver, você vai fazer para ele?

O problema de fazer código pronto para quem pergunta é que você não está ajudando, como pensa. Está atrapalhando.
Ele precisa entender por que precisa de ajax, como ajax funciona, de que forma ele pode ser utilizado e uma série de coisas.
De cara já sair usando jQuery é algo que não gosto, pois sem saber como fazer “na mão”, ele não entenderá a “mágica” que rola.
“Ah, o drsmachado é cruel e antiquado”, pode ser. Mas eu prezo pelo conhecimento. Sem essa parte de sofrer, errar e pesquisar, o conhecimento é muito volátil. Você se torna dependente de “colas”.[/quote]

Edit!

rsmoraes muito obrigado pelo suporte, me ajudou bastante.

Até então eu nem tinha noção que com Ajax poderia fazer isso, com isso eu vou buscar material para estudar e conseguir desenvolver o que eu preciso, além do mais, ajax é essencial para o mercado, então vai ser mais um conhecimento.

drsmachado muito obrigado também, você está totalmente correto, mesmo que a intenção do rsmoraes foi ajudar, mais dependendo para qual pessoa for ajudar, a pessoa acaba se acostumando ao google ou copy e paste, e não se torna um verdadeiro programador.

Eu estou pesquisando alguma material(Apostila ou Livro) para Ajax, e vou começar a estudar.
Cheguei a ver que tem curso online, mais tb não sei se seria uma boa.

De qualquer forma muito obrigado rsmoraes e drsmachado