← Desenvolvimento

Ajuda com Formulário

Lida 3003 vezes

Offline

Cacofb 
Elite
Mensagens 1035 Gostos 3
Troféus totais: 34
Trófeus: (Ver todos)
Level 6 Tenth year Anniversary Linux User Mobile User Apple User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter

Boas pessoal!!

Estou a precisar de fazer um formulário que me passe valores monetários associados a uma determinada opção ou checkbox por exemplo.
Vou dar um exemplo: Inscrição numa viagem, onde o valor final da mesma irá depender dos Extras que o cliente selecciona.
Queria também, quando submetido o formulário, que o valor total fosse enviado para o email do cliente juntamente com as formas de pagamento

Alguém me dá umas luzes de como fazer isto?
Penso que preciso de usar javascript ou estou a dizer asneiras?

Obrigado pela ajuda!  :cool:
Offline

Cacofb 
Elite
Mensagens 1035 Gostos 3
Troféus totais: 34
Trófeus: (Ver todos)
Level 6 Tenth year Anniversary Linux User Mobile User Apple User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter

bump
Offline

UrbanMinds 
Membro
Mensagens 20 Gostos 0
Troféus totais: 22
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 10 Posts First Post

Offline

Cacofb 
Elite
Mensagens 1035 Gostos 3
Troféus totais: 34
Trófeus: (Ver todos)
Level 6 Tenth year Anniversary Linux User Mobile User Apple User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter

O que eu quero mesmo é somar valores num formulário, guardá-los e enviá-lo para o email do cliente quando submetido!

Alguém tem ou sabe algum exemplo onde me possa basear??

Obrigado
Offline

-RJ- 
Membro
Mensagens 1188 Gostos 0
Troféus totais: 30
Trófeus: (Ver todos)
Apple User Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Javascript para as somas, e no final usas php para enviar o valor para o mail ou para onde quiseres.
Offline

Cacofb 
Elite
Mensagens 1035 Gostos 3
Troféus totais: 34
Trófeus: (Ver todos)
Level 6 Tenth year Anniversary Linux User Mobile User Apple User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter

Sabes algum exemplo por onde me guiar?
Não percebo nada de javascript mas se tiver o código de um exemplo parecido consigo alterar os dados e adaptar ao que preciso..

Obrigado
Offline

-RJ- 
Membro
Mensagens 1188 Gostos 0
Troféus totais: 30
Trófeus: (Ver todos)
Apple User Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes Poll Voter Level 5 Level 4 Level 3

Podes usar um e-cart em javascript tipo este como base: http://simplecartjs.com/ é livre por isso, se bem que não é preciso algo tão complexo... mas já é um exemplo...
Offline

Cacofb 
Elite
Mensagens 1035 Gostos 3
Troféus totais: 34
Trófeus: (Ver todos)
Level 6 Tenth year Anniversary Linux User Mobile User Apple User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter

Não é isso que quero..

Cheira-me que vou ter de contratar alguém para me fazer isso!
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

Cheira-me que vou ter de contratar alguém para me fazer isso!

É possível sim, visto que se não tens conhecimentos de JavaScript nem PHP, é complicado....

Mas eu vou dar-te algumas dessas luzes que tu procuras...

Ok, vais precisar de JavaScript e PHP.

Primeiro considera as segintes funções que fiz em JavaScript para te ajudar:

Código: (javascript) [Seleccione]
function calculate(inputID, divID, ammount) {

 if(inputID.checked) {

  document.getElementById(divID).innerHTML = roundtotal((document.getElementById(divID).innerHTML * 1) + (ammount * 1));

 } else {

  document.getElementById(divID).innerHTML = roundtotal((document.getElementById(divID).innerHTML * 1) - (ammount * 1));

 }

}

function roundtotal(num) {

 return (isNaN(num)) ? 0 : num.toFixed(2);

}


Agora a parte do formulário em HTML...

Código: (html) [Seleccione]
<form action="" method="post">
<p>
 <input type="checkbox" onchange="javascript: calculate(this, 'total', 10.00);" checked="checked" name="valor[]" value="id"/>
</p>
</form>

Desta forma poderás calcular o valor total a pagar e apresentar na página em "real-time".

Deixo-te aqui algo para poderes testar.... fiz agora em "cima do joelho" como costumo dizer....
Código: [Seleccione]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt" lang="pt">
<head>
 <title>Calcular by =IceBurn=</title>
 <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
 <script type="text/javascript">
  /*<![CDATA[*/
function calculate(inputID, divID, ammount) {

if(inputID.checked) {

document.getElementById(divID).innerHTML = roundtotal((document.getElementById(divID).innerHTML * 1) + (ammount * 1));

} else {

document.getElementById(divID).innerHTML = roundtotal((document.getElementById(divID).innerHTML * 1) - (ammount * 1));

}

}

function roundtotal(num) {

return (isNaN(num)) ? 0 : num.toFixed(2);

}
  /*]]>*/
 </script>
</head>

<body>
 
 <h1><em>Calcular</em></h1>
 
 <form action="" method="post">
 
  <p>
   A <input type="checkbox" onchange="javascript: calculate(this, 'total', 10.25);" name="valor[]" value="id_do_extra_na_bd"/> 10.25 &euro;
  </p>
  
  <p>
   B <input type="checkbox" onchange="javascript: calculate(this, 'total', 78.14);" name="valor[]" value="id_do_extra_na_bd"/> 78.14 &euro;
  </p>
  
  <p>
   C <input type="checkbox" onchange="javascript: calculate(this, 'total', 22.78);" name="valor[]" value="id_do_extra_na_bd"/> 22.78 &euro;
  </p>
  
  <p>
   D <input type="checkbox" onchange="javascript: calculate(this, 'total', 100.15);" name="valor[]" value="id_do_extra_na_bd"/> 100.15 &euro;
  </p>
  
 </form>
 
 <hr />
 
 <p>
  <strong>TOTAL A PAGAR:</strong> <span id="total">0.00</span> &euro;
 </p>
 

 <p><small>Coded by <a href="http://portugalparanormal.com/">=IceBurn=</a></small></p>

</body>
</html>

Depois, em vez de JS, usas PHP para fazer os cálculos quando o cliente submeter o formulário.

Isto partindo do princípio que queres fazer tudo numa página e não em diversas páginas. Caso seja em diversas páginas então aí terás que recorrer a sessões... mas isso já é outra história ;)

Cumprimentos,
IceBurn
Offline

Cacofb 
Elite
Mensagens 1035 Gostos 3
Troféus totais: 34
Trófeus: (Ver todos)
Level 6 Tenth year Anniversary Linux User Mobile User Apple User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter

GRANDE ajuda!!!

Muito obrigado IceBurn!!

É também possível fazer com este código uma list/menu então.
Vou fazer alguns testes, caso não consiga entro em contacto contigo para que me possas fazer este trabalho, remunerado claro!

Obrigado!
Offline

=IceBurn= 
Membro
Mensagens 897 Gostos 3
Feedback +3

Troféus totais: 32
Trófeus: (Ver todos)
Windows User Level 6 Linux User Mobile User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5

De nada. :)

Com select's dá um pouco mais de trabalho, pois o código tem de se "lembrar" do valor que tinhas seleccionado em determinado select para quando passares para outro valor. Mas dá para fazer sim.

Cumprimentos,
IceBurn
Offline

narg 
Membro
Mensagens 265 Gostos 0
Feedback +2

Troféus totais: 27
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 100 Posts

Atenção às somas em javascript.. convêm serem feitas tb em php ;)

Ou então verificar sempre se foi bem feita a soma ... ok