Eu tô estudando AJAX com jQuery.. dá uma olhada.. você vai precisar do jQuery:

script corrijido para versões jquery 1.4.2

index.php

<html>
<head>
	<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
	<script type="text/javascript">
	$(document).ready(function(){
		$("select[name='nome']").change(function(){
			var endereco = $("input[name='endereco']");
			var telefone = $("input[name='telefone']");

			$( endereco ).val('Carregando...');
			$( telefone ).val('Carregando...');

				$.getJSON(
					'function.php',
					{ idCliente: $( this ).val() },
					function( json )
					{
						$( endereco ).val( json.endereco );
						$( telefone ).val( json.telefone );
					}
				);
		});
	});
	</script>
</head>
<body>
	<form action="" method="post">
		<label>Nome: <select name="nome">
			<option value="">--</option>
<?php
	include 'function.php';
	echo montaSelect();
?>
		</select></label>
		<label>Endereço: <input name="endereco" type="text" disabled="disabled" value="" /></label>
		<label>Telefone: <input type="text" name="telefone" value="" /></label>
	</form>


	<div id="test"></div>
</body>
</html>

function.php

<?php
	$con = mysql_connect('localhost', 'root', '123');
	mysql_select_db('test', $con);

	/**
	 * função que retorna o select
	 */
	function montaSelect()
	{
		$sql = "SELECT `idCliente`, `nome` FROM `cliente` ";
		$query = mysql_query( $sql );

		if( mysql_num_rows( $query ) > 0 )
		{
			while( $dados = mysql_fetch_assoc( $query ) )
			{
				$opt .= '<option value="'.$dados['idCliente'].'">'.$dados['nome'].'</option>';
			}
		}
		else
			$opt = '<option value="0">Nenhum cliente cadastrado</option>';

		return $opt;
	}

	/**
	 * função que devolve em formato JSON os dados do cliente
	 */
	function retorna( $id )
	{
		$id = (int)$id;

		$sql = "SELECT `idCliente`, `nome`, `telefone`, `endereco`
			FROM `cliente` WHERE `idCliente` = {$id} ";
		$query = mysql_query( $sql );


		$arr = Array();
		if( mysql_num_rows( $query ) )
		{
			while( $dados = mysql_fetch_object( $query ) )
			{
				$arr['endereco'] = $dados->endereco;
				$arr['telefone'] = $dados->telefone;
			}
		}
		else
			$arr[] = 'endereco: não encontrado';

		return json_encode( $arr );
	}

/* só se for enviado o parâmetro, que devolve o combo */
if( isset($_GET['idCliente']) )
{
	echo retorna( $_GET['idCliente'] );
}


Usei php, e banco de dados MySQL.

Mas você conseguindo gerar o objeto JSON com a tua linguagem server-side, o script jquery que postei, se encarrega do resto do trabalho.

Em funcionamento:

http://www.wbruno.com.br/scripts/combo-preenche-input.php