Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
oi pessoal, como posso calcular valores inseridos em TextField?
por exemplo:
tenho 3 campos.
campo1
campo2
campo3
Label_total = campo1 + campo2 + campo3 vou inserindo e ela vai cauculando automaticamente
sem inserir no Banco de Dados
obrigada
Bruna
muito obrigada Beraldo ficou assim mas, só calcula números inteiros sem zero no final
exemplo:
2000 = 2
2001 = 2001
2.000 = 2
2,99 = 2
como resolver?
<?php
$campo1 = $_POST[ 'campo1' ];
$campo2 = $_POST[ 'campo2' ];
$campo3 = $_POST[ 'campo3' ];
$total = $campo1 + $campo2 + $campo3;
?>
<input name="total" type="text" id="total" value=" <?php echo "$total"/>;?>"
só tenho mais uma dúvida, eu gostaria de manter os dados nos campos após clicar no botão "CALCULAR"
BJS
BRUNINHA
não pode haver vírgula, pois isso não significa nada para o PHP. Ele considerará só o que há antes da vírgula. O separador decimal é o ponto, logo 2.000 não é 2 mil, é 2. É esse o motivo do problema
apesar de o PHP ser fracamente tipado, é bom você fazer casting das strings para valores numéricos. Por exemplo:
$campo1 = (float) $_POST['campo1'];
isso garante um tipo numérico, não uma string. (aliás, é bom se adaptar com isso, pois em muitas outras linguagens, é preciso fazer essa conversão)
Vale a pena ler isto:
http://php.net/manual/pt_BR/language.types.type-juggling.php
Sobre manter o número no input, você precisará salvar os valores em algum lugar para exibi-los na outra página. Você pode usar session ou cookie. Na outra página, faça um if para ver se o valor existe na session/cookie. Se existir, dê echo nele dentro do atributo "value" do input
o maximo que pude fazer foi assim,
<?php
$campo1 = $_POST[ 'campo1' ];
$campo2 = $_POST[ 'campo2' ];
$campo3 = $_POST[ 'campo3' ];
$total = $campo1 + $campo2 + $campo3;
?>
**<?php echo number_format($total,2,',','.');?>**
desse jeito informo números inteiros nos campos e será mostrado no resultado do jeito que eu gostaria
EX:
1000 fica assim 1.000,00
mas eu gostaria mesmo era calcular como foi informado 1.000 ficasse 1.000,00 e não 1
bjs
se for informado 1.000, você terá de usar str_replace() para trocar o ponto por uma string vazia. aí pode usar number_format() como você fez
nesse caso onde coloco str_replace()
<?php
$campo1 = $_POST[ 'campo1' ];
$campo2 = $_POST[ 'campo2' ];
$campo3 = $_POST[ 'campo3' ];
$total = $campo1 + $campo2 + $campo3;
?>
<?php echo number_format($total,2,',','.');?>
Bruna
pode colocar nas atribuições. por exemplo:
$campo1 = str_replace( '.', '', $_POST[ 'campo1' ] );
Perfeito
era isso que eu precisava mesmo DEU TUDO OK.
RESOLVIDO
você restata os valores por meio do array $_POST ou $_GET, dependendo do método do form. Crie uma variável iniciada em zero, para guardar a soma. Depois some cada valor a essa variável
por exemplo
$campo1 = $_POST[ 'textfield_1' ];
// ...
$total = $campo1 + $campo2 + $campo3;