Ir para conteúdo

POWERED BY:

Arquivado

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

Ariane Stela

[Resolvido] Mostrar Total

Recommended Posts

Olá galera,

 

estou com um erro aqui.

 

Eu digito 4 valores de produtos e 4 quantidades destes produtos e no final do formulario deve mostrar o total.

O codigo está assim:

HTML:

<?php for($i=1; $i<5; $i++): ?>
 <td>Qtd: <br /><input name="qtdade<?=$i?>" id="qtdade<?=$i?>" type="text" size="2" class="input qtd" value="<?php echo $_POST['qtdade' . $i] ?>" /></td>
						
 <td>Valor (R$): <br /><input name="vlr<?=$i?>" id="vlr<?=$i?>" type="text" size="4" class="input vlr" value="<?php echo $_POST['vlr' . $i] ?>" 
<?php endfor; ?>

<tr>
 <td>Total (R$): <br /><input readOnly="true" name="total" id="total" type="text" size="4" class="input" value="<?php echo $_POST['total'] /></td>
</tr>

SCRIPT:

function getTotal() {
	var total = 0;
	jQuery(".vlr").each(function(){
		var valor = this.value.toFloat();
		if(valor)
		{
			total += valor;
			jQuery(".qtd").each(function(){
				var qtdade = this.value.toFloat();
				if(qtdade)
					total = qtdade * valor;
			});
		}
	});
	
	
	return total;
}

jQuery(document).ready(function(){
	jQuery(".vlr").keypress(function(){
		jQuery("#total").val(getTotal());
	}).keyup(function(){
		jQuery("#total").val(getTotal());
	}).keydown(function(){
		jQuery("#total").val(getTotal());
	});
});

jQuery(document).ready(function(){
	jQuery(".qtd").keypress(function(){
		jQuery("#total").val(getTotal());
	}).keyup(function(){
		jQuery("#total").val(getTotal());
	}).keydown(function(){
		jQuery("#total").val(getTotal());
	});
});

mas eu nao consigo multiplicar a quantidade daquela linha ao valor da mesma linha, ela multiplica conforme a ordem de digitação

 

help-me.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pare de duplicar IDs, e percorra o DOM com .parent(), e .find() [métodos jQuery]

Compartilhar este post


Link para o post
Compartilhar em outros sites

function getTotal() {

var total = 0;

jQuery(".produto").each(function() {

var valor = jQuery(this).find('.vlr').val().toFloat();

var qtd = Number(jQuery(this).find('.qtd').val());

 

if (valor && qtd)

total += valor * qtd;

else

total += valor;

});

return total;

}

 

jQuery(document).ready(function(){

 

// BIND VALOR

jQuery(".vlr").keypress(function(){

jQuery("#total").val(getTotal());

}).keyup(function(){

jQuery("#total").val(getTotal());

}).keydown(function(){

jQuery("#total").val(getTotal());

});

 

// BIND QTD

jQuery(".qtd").keypress(function(){

jQuery("#total").val(getTotal());

}).keyup(function(){

jQuery("#total").val(getTotal());

}).keydown(function(){

jQuery("#total").val(getTotal());

});

});

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.