Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gustavo Vilas

[Resolvido] Aparecer dados logo apos digitar um valor

Recommended Posts

Olá pessoal estou com uma duvida aqui se alguem puder me ajudar ...

 

Tenho uma pagina de Cadastro de produtos aonde tenho os campos( codigo de barra, descrição,custo,lucro1,lucro2,lucro3,preco1,preco2,preco3)

 

Como vou fazer para que logo que eu digitar no campo lucro que é de % , ele já apareça no meu campo preco o valor com os devidos calculos automaticamente no campo que por padrão esta disabled="disabled" para o usuario não digitar nada ali.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pesquise sobre Ajax, aqui no fórum iMasters mesmo.

 

Peça ajuda lá ou dê uma olhada nos códigos prontos, deve ter alguma coisa parecida com o que você precisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não precisa de ajax para isso, não se os valores já estiverem nos campos.

 

 

<script type="text/javascript">
window.onload = function()
{
	id('lucro').onblur = function()
	{
		id('preco_final').value = id('preco').value*parseFloat( this.value/100 )+parseFloat( id('preco').value );
	}
}
function id( el ){
	return document.getElementById( el )
}
</script>



	Lucro: <input type="text" name="lucro" id="lucro" /> %<br />
	Preço: R$ <input type="text" name="preco" id="preco" readonly="readonly" value="15.00" /><br />
	Preço Final: R$ <input type="text" name="preco_final" id="preco_final" readonly="readonly" value="15.00" /><br />
utilizei o evento onblur, ou seja, ao sair do campo

digite algo em lucro, e clique fora dele, ou em qualquer outro lugar do body do documento.

o cálculo feito foi:

 

Preço Final = Preço Inicial + Preço Inicial*Lucro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não precisa de ajax para isso, não se os valores já estiverem nos campos.

 

Eu pensei na possibilidade de ele querer trazer diretamente do banco.

 

Mas se for mais simples, então, perfeitamente William.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado a todos pela ajuda, mas tenho algumas duvidas, no caso do amigo William Bruno eu não consigo "eu" digitar o preço? ele fica travado e não deixa eu digitar no exemplo ele usou o value=15, outra duvida para que serve readonly="readonly" ?

 

Daniel sobre a sua possibilidade de ele querer trazer diretamente do banco, vou precisar sim disso , mas lá na entrada do produto, quando eu der o select lá no banco com os produtos anteriormente cadastrados.

 

Se algum souber alguma possibilidade!!

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

readOnly é 'somente leitura'.

é a mesma função do disabled, com a diferença que o disabled DESATIVA completamente o campo, tanto que ao submeter o formulário, o value dos campos marcados como disabled, não serão enviados.

 

com readonly, você apenas impede que o usuario escreva, mas o envio do campo continua sendo possível.

 

se você quer digitar o valor, basta tirar o readonly uê!

Preço: R$ <input type="text" name="preco" id="preco" value="15.00" /><br />

E então, adicionar mais uma função, para ao sair do preço, também atualizar o Preço Final

id('preco').onblur = function()
	{
		id('preco_final').value = this.value*parseFloat( id('lucro').value/100 )+parseFloat( this.value );
	}

trazer dados do banco ao mudar um select, ai sim você precisará de ajax, a menos que esteja 'tudo bem o refresh da tela'.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem alguns topicos aqui no fórum falando sobre isso 'operações com moeda'.. e tal..

 

basta fazer um replace nesse caso.

a entrada do usuário é com virgula, você faz os calculos com ponto.

 

e ai pode devolver com virgula de novo(usando replace novamente).

dependendo, do caso, costumamos ignorar a virgula, multiplicando, tudo por 100.

 

todos os calculos são realizados, ai no final, divimos por 100 novamente.

funciona bem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aaaa legal.. bom no caso tem algo que mesmo o usuario digitar a virgula(,) ele quando vai para o proximo campo ele altera para ponto?

 

Pra isso você usa funções de tratamento de string, como strreplace

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal não estou conseguindo tratar a variavel preco_final , se coloco Preco a 20.00, e Lucro a 56%, o valor final fica : 31.200000000000003 , eu conheço o number_format($preco_final,2,'.','') de php, mas em javascript no script que o amigo passou não funfa, baixo o codigo:

 

<script type="text/javascript">


window.onload = function()
{
        id('lucro').onblur = function()
        {

                id('preco_final').value = id('preco').value*parseFloat( this.value/100 )+parseFloat( id('preco').value );

        }
		
		id('preco').onblur = function()
        {
				   
                id('preco_final').value = this.value*parseFloat( id('lucro').value/100 )+parseFloat( this.value );

        }
		
}
function id( el ){
        return document.getElementById( el )
}
</script>



        
        Preco: R$ 
          <input type="text" name="preco" id="preco"  value=""  />
        <br>
        
Lucro: 
<input type="text" name="lucro" id="lucro" /> %<br /> 
        
        Preco Final: R$ 
<input name="preco_final" type="text" id="preco_final" value="" maxlength="6" readonly="readonly"   /> 
<label></label>
        

Compartilhar este post


Link para o post
Compartilhar em outros sites

Reaproveitando código:

<script type="text/javascript">
window.onload = function()
{
	id('lucro').onblur = function()
	{
		id('preco_final').value = preco_final( id('preco').value, this.value );
	}
		id('preco').onblur = function()
	{				   
		id('preco_final').value = preco_final( this.value, id('lucro').value );
	}
}
function preco_final( preco, lucro )
{
	return (parseFloat( preco )*parseFloat( lucro )/100)+parseFloat( preco );
}
function id( el ){
	return document.getElementById( el )
}
</script>


	Preco: R$ <input type="text" name="preco" id="preco"  value="20.00"  /><br />
	Lucro: <input type="text" name="lucro" id="lucro" value=""/> %<br />
	Preco Final: R$ <input name="preco_final" type="text" id="preco_final" value="" maxlength="6" readonly="readonly"   /> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

alguns testes, if.. ou sempre atribuir 0, qndo não tiver valor... ai vai da usabilidade que você precisar.

 

[Resolvido]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.