Combobox preenche input AJAX
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: