Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal meu problema é o seguinte, tenho um select que é populado com valores de um banco de dados mysql, ao escolher uma opção eu quero que alguns campos do formulario sejam preenchidos automaticamente com as informações referentes a minha escolha no select. a lista com os dados do banco aparecem no select so que ao escolher nada é preenchido fica apenas carregando.
index.php
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("select[name='nome']").change(function(){
$("input[name='endereco']").val('Carregando...');
$("input[name='telefone']").val('Carregando...');
$.getJSON(
'function.php',
{idCliente: $(this).val()},
function(data){
$.each(data, function(i, obj){
$("input[name='endereco']").val(obj.endereco);
$("input[name='telefone']").val(obj.telefone);
})
});
});
});
</script>
</head>
<body>
<form action="" method="post">
<label>Nome: <select name="nome">
<option value="">--</option>
<?php
include('script.php');
echo montaSelect();
?>
</select></label>
<label>Endereço: <input type="text" name="endereco" value="" /></label>
<label>Telefone: <input type="text" name="telefone" value="" /></label>
</form>
</body>
</html>
script.php
<?php
$con = mysql_connect('localhost', 'root', '');
mysql_select_db('sisat', $con);
// idCliente= id
/**
* função que retorna o select
*/
function montaSelect()
{
$sql = "SELECT `id`, `nome` FROM motorista ";
$query = mysql_query( $sql );
if( mysql_num_rows( $query ) > 0 )
{
while( $dados = mysql_fetch_assoc( $query ) )
{
$opt .= '<option value="'.$dados['id'].'">'.$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=null )
{
$id = (int)$id;
$sql = "SELECT * FROM motorista ";
if( $id != null )
$sql .= "WHERE `id` = {$id} ";
$query = mysql_query($sql);
//$json = 'var dados = ';
$json .= ' [';
if(mysql_num_rows($query) > 0 )
{
while($dados = mysql_fetch_assoc($query))
{
$json .= "{endereco: '{$dados['nome']}', telefone: '{$dados['cpf']}' }";;
}
}
else
$json = 'endereco: não encontrado';
$json .= ']';
//$jston .= ';';
return $json;
}
/ só se for enviado o parâmetro, que devolve o combo /
if( isset($_GET['idCliente']) )
{
echo retorna( $_GET['idCliente'] );
}
?>Carregando comentários...