rfamelli 0 Denunciar post Postado Abril 10, 2012 Boa tarde!! Preciso de um formulário com vários serviços, cada um checkbox, onde o usuário vai escolher o serviço que quer e mandar por email. Só que a intençao deste formulário além de enviar por email o pedido, é mostrar a soma dos valores de cada serviço para o usuário, consegui aqui no forum o seguinte codigo que faz a soma do serviços, até ai perfeito!, mas como eu poderia enviar por email o serviços que a pessoa escolheu se no value do checkbox está o valor do serviço e nao o nome dele? <script LANGUAGE="JavaScript"> <!-- var total = 0; function soma(campo) { if (campo.checked) total += eval(campo.value); else total -= eval(campo.value); document.sistema.total.value = total; } //--> </SCRIPT> <input type="checkbox" name="servico" value=20" onClick="soma(this)"> Cabelo <input type="checkbox" name="servico" value="30" onClick="soma(this)"> Maquiagem <input type="checkbox" name="servico" value="50" onClick="soma(this)"> Massagem mas neste caso recebo o email da seguinte forma: Serviço 20.00 30.00 50.00 ao invés de Serviço Cabelo Maquiagem Massagem Alguem sabe como eu posso completar este codigo pra atender minha necessidade? É possível? Agradeço desde já! Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Abril 10, 2012 Vai depender de como você vai querer programar. Você pode separar cada item correspondente ao checkbox em inputs diferentes... exemplo: <input type="checkbox" name="servico[]" value="1" onClick="soma(this)"> Cabelo <input type="hidden" name="valor_1" id="valor_1" value="20.00" /> <input type="hidden" name="servico_1" id="servico_1" value="Cabelo" /> <input type="checkbox" name="servico[]" value="2" onClick="soma(this)"> Maquiagem <input type="hidden" name="valor_2" id="valor_2" value="20.00" /> <input type="hidden" name="servico_2" id="servico_2" value="Maquiagem" /> .js <script LANGUAGE="JavaScript"> <!-- var total = 0; function soma(campo) { var valor = document.getElementById( 'valor_' + campo.value ); var servico = document.getElementById( 'servico_' + campo.value ); if (campo.checked) { total += eval(valor.value); } else { total -= eval(valor.value); document.sistema.total.value = total; } } //--> </SCRIPT> Ai você define como trabalhar com as variáveis valor e servico... Essa é só uma das inúmeras possibilidades. Nota: Fiz de cabeça rapidinho agora, não testei. Pode haver métodos com o nome errado. Compartilhar este post Link para o post Compartilhar em outros sites
rfamelli 0 Denunciar post Postado Abril 10, 2012 Valeu Gabriel! Só mudei uma coisa <script LANGUAGE="JavaScript"> <!-- var total = 0; function soma(campo) { var valor = document.getElementById( 'valor_' + campo.value ); var servico = document.getElementById( 'servico_' + campo.value ); if (campo.checked) { total += eval(valor.value); } else { total -= eval(valor.value); document.sistema.total.value = total; } } //--> </SCRIPT> Aliás, desculpe: o correto é <script LANGUAGE="JavaScript"> <!-- var total = 0; function soma(campo) { var valor = document.getElementById( 'valor_' + campo.value ); var servico = document.getElementById( 'servico_' + campo.value ); if (campo.checked) { total += eval(valor.value); document.sistema.total.value = total; } else { total -= eval(valor.value); document.sistema.total.value = total; } } //--> </SCRIPT> Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Abril 10, 2012 acabei me confundindo na pressa e na falta das chaves.... coloca assim pra não ficar repetindo <script LANGUAGE="JavaScript"> <!-- var total = 0; function soma(campo) { var valor = document.getElementById( 'valor_' + campo.value ); var servico = document.getElementById( 'servico_' + campo.value ); if (campo.checked) { total += eval(valor.value); } else { total -= eval(valor.value); } document.sistema.total.value = total; } //--> </SCRIPT> Qualquer dúvida, poste no fórum. Já podem colocar como resolvido. Compartilhar este post Link para o post Compartilhar em outros sites
rfamelli 0 Denunciar post Postado Abril 10, 2012 Só surgiu uma duvida agora, nao consegui desenvolver, se alguem puder me ajudar... Para eu enviar por email em Php, como eu pego o valor do serviço de acordo com o checkbox clicado? <input type="checkbox" name="servico[]" value="2" onClick="soma(this)"> Maquiagem <input type="hidden" name="servico_2" id="servico_2" value="Maquiagem" /> Obrigada mais uma vez! Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Abril 10, 2012 Quando se adiciona no name os colchetes ( servico[] ), você define que será um vetor. Logo, trate-o como um vetor: <?php $checkbox = $_POST['servico']; foreach( $checkbox AS $var ) { echo $_POST['servico_'.$var]; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
rfamelli 0 Denunciar post Postado Abril 10, 2012 Quando se adiciona no name os colchetes ( servico[] ), você define que será um vetor. Logo, trate-o como um vetor: <?php $checkbox = $_POST['servico']; foreach( $checkbox AS $var ) { echo $_POST['servico_'.$var]; } ?> Super obrigda Gabriel! Compartilhar este post Link para o post Compartilhar em outros sites
Juunior Cintra 1 Denunciar post Postado Fevereiro 20, 2014 Como eu faço para mostrar o total dos valores ? Compartilhar este post Link para o post Compartilhar em outros sites
Cassiano José 2 Denunciar post Postado Fevereiro 20, 2014 Você pode usar JavaScript: <script> function sumChecked() { var valor = $("input:checked"); var total = 0; for (var i=0;i<valor.length;i++) { total = total+parseFloat(valor[i].value); } $("#valor").val(total.toFixed(0)); } sumChecked(); $(":checkbox").click(sumChecked); </script> <input type="checkbox" name="servico" value=20" onClick="soma(this)"> Cabelo <input type="checkbox" name="servico" value="30" onClick="soma(this)"> Maquiagem <input type="checkbox" name="servico" value="50" onClick="soma(this)"> Massagem E Usar um o input pra receber o valor: <input type="hidden" name="valor" id="valor" value="0"> Daí bastará enviar por $_POST["valor"]; Espero ter ajudado. Como eu faço para mostrar o total dos valores ? Bastaria tirar o hidden, no caso do código que postei, e usar: <input type="text" name="valor" id="valor" value="0"> Compartilhar este post Link para o post Compartilhar em outros sites
Juunior Cintra 1 Denunciar post Postado Fevereiro 20, 2014 Olá, ainda não consegui. Gostaria do seguinte, quando for clicando no checkbox ele mostrar um valor total na index.php Depois quando clicar em enviar. Na pagina script.php Mostrar o nome de cada item selecionado e o valor total. Se tivesse como mostrar cada item e o valor e depois a soma, seria melhor. Valeu... index.php <html> <head> <title> </title> </head> <body> <script LANGUAGE="JavaScript"> <!-- var total = 0; function soma(campo) { var valor = document.getElementById( 'valor_' + campo.value ); var servico = document.getElementById( 'servico_' + campo.value ); if (campo.checked) { total += eval(valor.value); } else { total -= eval(valor.value); } document.sistema.total.value = total; } //--> </SCRIPT> <form method="post" action="script.php"> <input type="checkbox" name="servico[]" value="1" onClick="soma(this)"> Cabelo <input type="hidden" name="valor_1" id="valor_1" value="20.00" /> <input type="hidden" name="servico_1" id="servico_1" value="Cabelo" /> <input type="checkbox" name="servico[]" value="2" onClick="soma(this)"> Maquiagem <input type="hidden" name="valor_2" id="valor_2" value="20.00" /> <input type="hidden" name="servico_2" id="servico_2" value="Maquiagem" /> <input type="text" name="valor" id="valor" value="0"> <input type="submit" name="enviar" value="enviar"/> </form> </body> </html> script.php <?php $checkbox = $_POST['servico']; foreach( $checkbox AS $var ) { echo $_POST['servico_'.$var]; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Cassiano José 2 Denunciar post Postado Fevereiro 20, 2014 Deixa ver se entendi, você quer que o cálculo total apareça na index, e depois na página "script.php" você quer que ele receba os valores da index e mostre além dos valores, os produtos e o valor de cada produto. É Isso? Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Fevereiro 20, 2014 O código que eu postei no post #4 já realiza a soma dos itens e exibe em: document.sistema.total.value = total; Entretanto, essa estruturação em árvore através dos nós do DOM quase não é utilizada hoje em dia (vide jQuery ou outras bibliotecas). Para facilitar, você pode utilizar o ID de algum elemento e inserir o seu valor nele: document.getElementById("valor").value = total; Usar jQuery facilita, mas não comece a utilizar jQuery se não souber o básico de javascript. Compartilhar este post Link para o post Compartilhar em outros sites
aantunesl 0 Denunciar post Postado Março 11, 2016 Pessoal, ví este tópico, e estou precisando de algo parecido. Veja se conseguem me ajudar.Preciso de um form:-------------------------------------------------------------- <form name="consulta"> <input name="nome" type="text" value="Nome" /><br> <input name="email" type="text" value="Email" /><br> <select id="" class="" name="Pontos"> <option value="0" selected="selected">1000</option> <option value="0" selected="selected">2000</option> </select><br> <select id="" class="" name="Creditos"> <option value="0" selected="selected">5000</option> <option value="0" selected="selected">8000</option> </select><br> <select id="" class="" name="Visualizações"> <option value="0" selected="selected">10000</option> <option value="0" selected="selected">20000</option> </select><br> <select id="" class="" name="Cliques"> <option value="0" selected="selected">50000</option> <option value="0" selected="selected">80000</option> </select><br> <input name="enviar" type="submit" value="Enviar"> </form> ------------------------------------------------------------------ Ao clicar em "enviar" o usuário vai receber no email, o valor cobrado, tipo assim:Olá "FULANO", segue abaixo o valor da sua solicitação:1000 Pontos = R$50,005000 Créditos = R$70,0010000 Visualizações = R$90,0050000 cliques = R$250,00------------------------------------------Total R$460,00 Se puderem me ajudar, serei muito grato!Abraço Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Março 11, 2016 Favor abrir um novo tópico com a sua dúvida, também leia as orientações: http://forum.imasters.com.br/topic/542539-atencao-orientacoes-e-regras-do-forum-de-php/ Compartilhar este post Link para o post Compartilhar em outros sites