Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola, Pessoal!
Estou com o codigo abaixo, que esta rodando a consulta normal(para preenchimento do campo cliente no select option)
<form method="post" action="index.php?cms=NovaFatura" enctype="multipart/form-data">
<p>
<label for="textfield">
<strong>Cliente:</strong>
</label>
<select id="escolhecliente" name="escolhecliente" class="inputbox">
<option value="">Selecione</option>
<?php
$filtrac = mysql_query("SELECT * FROM clientes order by nome ASC");
while($clientes = mysql_fetch_array($filtrac)){
?>
<option value="<?php echo $clientes['id']; ?>" >
<?php echo $clientes['nome']; ?> - cpf:
<?php echo $clientes['cpf']; ?> -
</option>
<?php } ?>
</select>
<p>
Minha duvida seria que ao eu escolher o cliente(no select option acima), ele mostre o campo "**vencimento**" (por exemplo) , que faz parte da mesma tabela..
Tentei usando JS, mas ele simplesmente ignora quando escolho o cliente...ou seja, nao mostra nada..
Voce tem alguma ideia disso?
Vlww>
11 horas atrás, JulinhoooO disse:
Da pra fazer isso utilizando jQuery/AJAX
Cole isso acima do fechamento da tag <body> no seu código
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
//esconde a tag #vencimento(display:none)
$("#vencimento).hide();
//toda vez que eu mudar a opção do select irá executar essa função
$("#escolhecliente).on("change", function(){
//pega o id do cliente
var idCliente = $(this).val();
//executa a requisição
$.ajax({
//arquivo que irá me retornar os dados que quero
url:"vencimento.php",
//método que irei utilizar
method:"POST",
//dados que irei passar para o arquivo
data:{id:id},
//tipo de dados que o arquivo irá me retornar
dataType:"HTML",
//se tudo ocorreu bem irá executar essa função
success: function(data){
//adicionar os dados recebidos dentro de uma tag qualquer com o id "vencimento"
$("#vencimento).html(data);
//troca a propriedade display da tag #vencimento de none para block(mostra ela para o usuário)
$("#vencimento).show();
}
});
});
</script>
vencimento.php
if(isset($_POST['id'])){
$id = $_POST['id'];
$connect = mysqli_connect("localhost", "root", "", "db_cliente");
$query = "SELECT vencimento FROM clientes WHERE id = ".$id;
$exec = mysqli_query($connect, $query);
$result = mysqli_fetch_array($exec);
echo $result['vencimento'];
}
Dessa maneira sempre que você trocar o valor no select "cliente" a requisição AJAX irá fazer essa busca na tabela cliente com o id que você selecionou, e irá adicionar o que foi encontrado no SELECT dentro do que você quiser. Nesse exemplo uma tag qualquer com o id "vencimento"
Opa, Obrigado pela dica,..
No caso, se eu quisesse mostrar na mesma pagina(antes de executar o botao de confirmar do form), seria possivel?>
6 horas atrás, fabio.aurelio disse:
Opa, Obrigado pela dica,..
No caso, se eu quisesse mostrar na mesma pagina(antes de executar o botao de confirmar do form), seria possivel?
Ele já executa sem confirmar nada, só de você alterar a opção selecionada no select ele já faz a busca e te retorna o vencimento. Sem nem recarregar a página
>
3 horas atrás, JulinhoooO disse:
Ele já executa sem confirmar nada, só de você alterar a opção selecionada no select ele já faz a busca e te retorna o vencimento. Sem nem recarregar a página
Porque eu fiz estas alterações, mas nao aconteceu nada...nao mostrou nenhum dado..Tente isso
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
//esconde a tag #vencimento(display:none)
$("#vencimento).hide();
//toda vez que eu mudar a opção do select irá executar essa função
$("#escolhecliente).on("change", function(){
//pega o id do cliente
var id = $(this).val();
//executa a requisição
$.ajax({
//arquivo que irá me retornar os dados que quero
url:"vencimento.php",
//método que irei utilizar
method:"POST",
//dados que irei passar para o arquivo
data:{id:id},
//tipo de dados que o arquivo irá me retornar
dataType:"HTML",
//se tudo ocorreu bem irá executar essa função
success: function(data){
//adicionar os dados recebidos dentro de uma tag qualquer com o id "vencimento"
$("#vencimento).html(data);
//troca a propriedade display da tag #vencimento de none para block(mostra ela para o usuário)
$("#vencimento).show();
console.log(data);
}
});
});
</script>
E veja na aba console no navegador se aparece algo>
14 minutos atrás, JulinhoooO disse:
Tente isso
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
//esconde a tag #vencimento(display:none)
$("#vencimento).hide();
//toda vez que eu mudar a opção do select irá executar essa função
$("#escolhecliente).on("change", function(){
//pega o id do cliente
var id = $(this).val();
//executa a requisição
$.ajax({
//arquivo que irá me retornar os dados que quero
url:"vencimento.php",
//método que irei utilizar
method:"POST",
//dados que irei passar para o arquivo
data:{id:id},
//tipo de dados que o arquivo irá me retornar
dataType:"HTML",
//se tudo ocorreu bem irá executar essa função
success: function(data){
//adicionar os dados recebidos dentro de uma tag qualquer com o id "vencimento"
$("#vencimento).html(data);
//troca a propriedade display da tag #vencimento de none para block(mostra ela para o usuário)
$("#vencimento).show();
console.log(data);
}
});
});
</script>
E veja na aba console no navegador se aparece algo
Apareceu isso no console..
jquery-3.3.1.min.js:2 jQuery.Deferred exception: $(...).editable is not a function TypeError: $(...).editable is not a function
at HTMLDocument.<anonymous> (http://localhost:8085/admin/index.php?cms=NovaFatura:331:20)
at l (https://code.jquery.com/jquery-3.3.1.min.js:2:29375)
at c (https://code.jquery.com/jquery-3.3.1.min.js:2:29677) undefinedPerdão, acabei me esquecendo de fechar as " em vários lugares, o costume dos editores fechar automaticamente faz isso kkk
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
//esconde a tag #vencimento(display:none)
$("#vencimento").hide();
//toda vez que eu mudar a opção do select irá executar essa função
$("#escolhecliente").on("change", function(){
//pega o id do cliente
var id = $(this).val();
//executa a requisição
$.ajax({
//arquivo que irá me retornar os dados que quero
url:"vencimento.php",
//método que irei utilizar
method:"POST",
//dados que irei passar para o arquivo
data:{id:id},
//tipo de dados que o arquivo irá me retornar
dataType:"HTML",
//se tudo ocorreu bem irá executar essa função
success: function(data){
//adicionar os dados recebidos dentro de uma tag qualquer com o id "vencimento"
$("#vencimento").html(data);
//troca a propriedade display da tag #vencimento de none para block(mostra ela para o usuário)
$("#vencimento").show();
console.log(data);
}
});
});
</script>
Veja se aparece algum erro no console agora>
13 minutos atrás, JulinhoooO disse:
Perdão, acabei me esquecendo de fechar as " em vários lugares, o costume dos editores fechar automaticamente faz isso kkk
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
//esconde a tag #vencimento(display:none)
$("#vencimento").hide();
//toda vez que eu mudar a opção do select irá executar essa função
$("#escolhecliente").on("change", function(){
//pega o id do cliente
var id = $(this).val();
//executa a requisição
$.ajax({
//arquivo que irá me retornar os dados que quero
url:"vencimento.php",
//método que irei utilizar
method:"POST",
//dados que irei passar para o arquivo
data:{id:id},
//tipo de dados que o arquivo irá me retornar
dataType:"HTML",
//se tudo ocorreu bem irá executar essa função
success: function(data){
//adicionar os dados recebidos dentro de uma tag qualquer com o id "vencimento"
$("#vencimento").html(data);
//troca a propriedade display da tag #vencimento de none para block(mostra ela para o usuário)
$("#vencimento").show();
console.log(data);
}
});
});
</script>
Veja se aparece algum erro no console agora
Apareceu erros, mas nao do jquery. Eu vi que apareceu o resultado no console, olha só...(na tela nao apareceu nada ainda)

>
54 minutos atrás, fabio.aurelio disse:
Apareceu erros, mas nao do jquery. Eu vi que apareceu o resultado no console, olha só...(na tela nao apareceu nada ainda)
Coloque um div logo abaixo do select
<form method="post" action="index.php?cms=NovaFatura" enctype="multipart/form-data">
<p>
<label for="textfield">
<strong>Cliente:</strong>
</label>
<select id="escolhecliente" name="escolhecliente" class="inputbox">
<option value="">Selecione</option>
<?php
$filtrac = mysql_query("SELECT * FROM clientes order by nome ASC");
while($clientes = mysql_fetch_array($filtrac)){
?>
<option value="<?php echo $clientes['id']; ?>" >
<?php echo $clientes['nome']; ?> - cpf:
<?php echo $clientes['cpf']; ?> -
</option>
<?php } ?>
</select>
</p>
<p>
<div id='vencimento'></div>
</p>
É pra aparecer lá o vecimento se tudo funcionar corretamente>
4 horas atrás, JulinhoooO disse:
Coloque um div logo abaixo do select
<form method="post" action="index.php?cms=NovaFatura" enctype="multipart/form-data">
<p>
<label for="textfield">
<strong>Cliente:</strong>
</label>
<select id="escolhecliente" name="escolhecliente" class="inputbox">
<option value="">Selecione</option>
<?php
$filtrac = mysql_query("SELECT * FROM clientes order by nome ASC");
while($clientes = mysql_fetch_array($filtrac)){
?>
<option value="<?php echo $clientes['id']; ?>" >
<?php echo $clientes['nome']; ?> - cpf:
<?php echo $clientes['cpf']; ?> -
</option>
<?php } ?>
</select>
</p>
<p>
<div id='vencimento'></div>
</p>
É pra aparecer lá o vecimento se tudo funcionar corretamente
Agora apareceu o conteúdo do campo...
Muito obrigado pela ajuda , vou desenvolver o restante do código agora para fazer um outro select..
Da pra fazer isso utilizando jQuery/AJAX