Ir para conteúdo

POWERED BY:

Arquivado

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

Cesão

alterar valor com select

Recommended Posts

Olá amigos,

 

Tenho a seguinte situação:

Tenho um combo (select) onde listo os bairros da minha cidade dinamicamente. o value de cada option é o ID desse bairro. No banco de dados dos bairros, ainda existe um campo de VALOR, que eh o custo (Ex: 2,00) para entrega em cada bairro.

 

Daí gostaria de fazer o seguinte... no final da minha página eu tenho o total do pedido, que é uma soma entre o valor total do pedido + o valor da entrega.

 

<%=(preco_total + preco_entrega)%>

Gostaria que, quando fosse alterado o bairro no meu select de bairros, a variavel do valor de entrega do bairro tbm fosse alterada, fazendo com que a soma do total fosse alterada tbm, mas tudo isso, sem ter que dar refresh na página.

 

Alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites
Voce pode usar ajax, existem varios topicos e scripts aqui na secao. Poderia ate te indicar fazer a soma soh com javascript mas acho que mexer com valores (pagamento) deveria tomar cuidado pq JS nao é seguro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas não existe uma forma de eu usar innerHTML p ir fazendo as contas e substituindo o valor final de acordo com as mudanças que faço no select?

É isso que queria.. uma função que pegasse minha variável ASP de valor do pedido, daí pegasse o valor de entrega de acordo com o ID escolhido no select, somasse e desse um innerHTML no meu valor final.

 

A lógica seria:

variavel valor_pedido

quando alterar o select, envia um ID.

faz um select no banco de dados buscando o valor de entrega de acordo com o ID do bairro

soma as duas variáveis e dá um innerHTML pra alterar o valor final.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui pessoal,

 

Aí vai o código. criei um código onde aparecia o valor de pedido inicialmente (onLoad).

Daí caso o bairro fosse alterado no select (onChange), ele puxava a função denovo e fazia a soma entre o valor de entrega e o valor de pedido e mostrava a soma:

 

function valorEntrega(){
	var id = document.form_pedido.idBairro.value;
	var rs_entrega = document.getElementById('rs_entrega');
	var preco_total = new Number(document.form_pedido.preco_total.value);
	<%
	Set TB_ENT = Server.CreateObject("ADODB.RecordSet")
	SQL = "SELECT ID_BAIRRO, NUM_PRECO FROM TBL_BAIRROS"
	TB_ENT.Open SQL, Conn
	
	do while not TB_ENT.EOF
	%>
		if(trim(id)=="<%=TB_ENT("ID_BAIRRO")%>"){
			preco_entrega = new Number(<%=Replace(TB_ENT("NUM_PRECO"), ",", ".")%>);
			var resultado = new Number(preco_total + preco_entrega)
			rs_entrega.innerHTML = 'R$ ' + resultado.toFixed(2);
		}else if(trim(id)=="0"){
			rs_entrega.innerHTML = 'R$ ' + preco_total.toFixed(2);
		}
	<%TB_ENT.movenext : loop : TB_ENT.Close%>
}

Explicando a função acima:

Cria as variávels puxando o value da combo de bairro, a variavel onde vai ser mostrado o valor total e a variável numérica que puxa o preço total de um input.

Depois faço um select no meu banco de bairros e comparo: caso o id do bairro selecionado for 2 (por exemplo), ele puxa do banco o preço de entrega desse bairro e coloca numa variável numérica. Daí depois ele faz outro if... se algum bairro estiver selecionado ele soma o valor de entrega mais o valor de pedido e mostra a soma. Se nenhum bairro estiver selecionado (value=0) daí ele mostra apenas o valor de pedido.

 

Espero que seja útil para vocês.

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.