Ir para conteúdo

Arquivado

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

Vini Martins

Dividir valores de um INPUT

Recommended Posts

Galera, tenho uma duvida bem simples...

Valor do Produto: <input type="tel" required="required" maxlength="6" name="valor" pattern="([0-9]{1,3}\.)?[0-9]{1,3},[0-9]{2}$">
Parcela: <input type="number" required="required" name="parcelation" maxlength="2">
<input type="submit" value="Enviar"/>

O que eu precisava era o seguinte, ao clicar no input Enviar ele pegasse o valor do Produto digitado e a quantidade de parcelas e dividisse automaticamente, enviando então o valor já modificado para a outra pagína...

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, nunca confie nos dados do lado do cliente, o recomendado é que você gere o valor das parcelas do lado do servidor e apenas exiba para o cliente, mas nunca use o valor mostrado no navegador para salvar o preço da venda do produto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já considerou criar um input type="hidden" para armazenar o valor da parcela quando for submeter o formulário?

 

Desculpe, mas não entendo muito disso, o que eu realmente necessitava imagino eu, era um JavaScript que fizesse a divisão para mim.

 

Amigo, nunca confie nos dados do lado do cliente, o recomendado é que você gere o valor das parcelas do lado do servidor e apenas exiba para o cliente, mas nunca use o valor mostrado no navegador para salvar o preço da venda do produto.

 

Não vai ser um site onde os clientes poderão realizar compras, é apenas para visualização dos produtos, com as informações...

Pois para a pessoa que estou fazendo o ela não quer que contenha venda, apenas os detalhes de cada produto. Com isso eu fiz um simples painel para ela adicionar os produtos, segue os exemplos:

 

20gn03q.png Nessa imagem é um simples painel de exemplo

4scvmv.png

Nessa parte é quando a Imagem, Nome do Produto, Valor e as Parcelas são adicionadas ao banco, no entanto perceba que a parcela não condiz com o valor S/ Juros... para isso eu queria que dividisse automaticamente pelas parcelas ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah... vc quer fazer uma divisão matemática?.. .rs

 

Mas não creio que seja necessário fazer isso no javascript, vc está usando qual linguagem para trazer esta informação do banco?

 

posta aqui o código que gera a imagem com o preço ali em cima

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah... você quer fazer uma divisão matemática?.. .rs

 

Mas não creio que seja necessário fazer isso no javascript, você está usando qual linguagem para trazer esta informação do banco?

 

posta aqui o código que gera a imagem com o preço ali em cima

 

Aqui está o código

<?php include "../corpo_cima.php" ?>

<?php
$host = "localhost";
$username = "root";
$password = "";
$db = "teste";


mysql_connect($host,$username,$password) or die("Impossível conectar ao banco."); 

@mysql_select_db($db) or die("Impossível conectar ao banco"); 

$result = mysql_query("SELECT * FROM CONTEUDO") or die("Impossível executar a query"); 
$resultado = mysql_query("SELECT * FROM PRODUTO") or die ("impossivel executar a query Produto");
echo "<main class='conteudo'>
<div class='fundo-paginacao'>
	<div class='paginacao'>
            	<div class='pagination'>
            	</div>
            </div>
</div>
            <div class='list-of-posts'>
";

while($row=mysql_fetch_object($result)){ 
	while ($linha = mysql_fetch_array($resultado)) {
		$id = $linha['PROD_ID'];
		$produto = $linha['PROD_NOME'];
		$preco = $linha['PROD_PRECO'];
		$parcela = $linha['PROD_PARCELA'];
		$parcelaValor = $linha['PROD_VALORPARCELA'];
			echo "
			            <div class='post'>
			                <div class='conteudo-imagem'><img src='getImagem.php?PicNum=$row->CONT_ID' \'></div>
			                <a href='../pijamas/CDK_pijama.php?' class='conteudo'><h3 class='titulo-produto'>$produto</h3></a>
			                <div class='conteudo-preco'>R$$preco</div>
			                <div class='conteudo-parcela'>ou em $parcela de R$$parcelaValor,00 S/ JUROS</div>
			                <div class='conteudo-button'><a href='#' class='conteudo'><li class='conteudo-button'>aa</li></a></div>              
			            </div>     
	"; 
		}
	
} 
	echo "
	</div>
	<div class='paginacao'>
            	<div class='pagination'>
       
            	</div>
            </div>
	</main>";
?>

<?php include "../corpo_baixo.php" ?>

Sei que pode conter coisas erradas, mas sou meio "novato" nessa área xD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pergunta cara, você está gravando o valor da parcela no banco de dados também?

SE sim, você precisará calcular isso no PHP antes de gravar, caso contrário, pode fazer desta forma:

$preco = $linha['PROD_PRECO'];
$parcela = $linha['PROD_PARCELA'];
$parcelaValor = $preco / $parcela;

Isso te dará o valor da parcela calculado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pergunta cara, você está gravando o valor da parcela no banco de dados também?

SE sim, você precisará calcular isso no PHP antes de gravar, caso contrário, pode fazer desta forma:

$preco = $linha['PROD_PRECO'];
$parcela = $linha['PROD_PARCELA'];
$parcelaValor = $preco / $parcela;

Isso te dará o valor da parcela calculado.

 

Eu tentei como disse, porém o valor gravado no banco é como 0...

Encontrei uma solução, usando JavaScript

function calc_parcela(){
           var parcela = parseInt(document.getElementById('parcelation').value);
           var valor = parseInt(document.getElementById('valor').value);
           tot = valor / parcela;
           document.getElementById('valorParcela').value = tot;
}

No entanto há um pequeno problema, ao ser calculado o valor de 150,00 por exemplo, em 2 parcelas, ficam como 75 cada parcela, mas se for em 7 parcelas, o valor será 21.428571428571427...

Seria possível transformar esse valor em uma mascara como 00,00 ao enviar ao banco?

Compartilhar este post


Link para o post
Compartilhar em outros sites

seria sim...

 

vc pode usar o próprio javascript

usando:

tot.toFixed(2);

 

ou o php com

number_format($variavel, 2)

Compartilhar este post


Link para o post
Compartilhar em outros sites

seria sim...

 

você pode usar o próprio javascript

usando:

 

tot.toFixed(2);

 

ou o php com

number_format($variavel, 2)

 

Realmente, deu certo, muito obrigado...

Uma outra duvida, o valor ficou com o ponto não com virgula, teria como mudar? Caso seja algo complexo, desconsidere.

Compartilhar este post


Link para o post
Compartilhar em outros sites

então...

 

tanto JS, quanto o MySql como também o PHP usam o padrão americano. se tiver no banco de dados como double ou float o melhor é vc alterar só a visualização, pelo PHP:

 

number_format($variavel, 2, ',','.');

 

no js : tot.toFixed().replace('.', ',');

Compartilhar este post


Link para o post
Compartilhar em outros sites

então...

 

tanto JS, quanto o MySql como também o PHP usam o padrão americano. se tiver no banco de dados como double ou float o melhor é você alterar só a visualização, pelo PHP:

 

number_format($variavel, 2, ',','.');

 

no js : tot.toFixed().replace('.', ',');

Muito obrigado, resolveu meus problemas!

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.