Ir para conteúdo

Arquivado

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

Diego Alexandre Dias

Problema com checkbox

Recommended Posts

Boa noite amigos, 

 

Estou desenvolvendo um sistema para minha empresa que visa ratear despesas de marketing entre lojas de atuação. 

Estas lojas são selecionadas por meio de Checkbox onde o value presente em cada um deles, corresponde ao número de habitantes de cada região.

Como disse, preciso ratear todas as despesas entres estas lojas, deste modo criei uma fucntion soma() que soma os valores de todos os checkboks assinalados.

 

Preciso encontrar uma forma de calcular o valor presente em cada checkbox (desde que ele esteja assinalado) e dividir este mesmo valor pelo total presente na function soma().

Somente assim vou conseguir saber o quanto (em %) a loja assinalada no checkbox representa do total assinalado.

 

Imaginei criar abaixo de cada input type: checkbox um input type: text e ao invés de mandar o value do checkbox para o meu banco, enviar o value do meu text, deste modo já encaminho para o banco o valor já calculado. Assim utilizaria os checkbox apenas para calcular 

 

 

Se alguém tiver alguma ideia de como criar esta função ficarei muito grato.  

 

 

<!DOCTYPE html>
<html lang="pt-br">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
 
    <meta name="description" content="Página Administrativa">
    <meta name="author" content="Diego">
    <link rel="icon" href="imagens/favicon.ico">
 
    <title>Cadastrar Nota Fiscal</title>
  
    <link href="css/bootstrap.min.css" rel="stylesheet">
   
    <link href="css/bootstrap-theme.min.css" rel="stylesheet">
   
    <link href="css/ie10-viewport-bug-workaround.css" rel="stylesheet">
 
    <link href="theme.css" rel="stylesheet">
 
    <script src="js/ie-emulation-modes-warning.js"></script>
    
  </head>
 
  <body role="document">
 
    <?php
 
      include_once("menu_admin.php");
     
    ?>
   
    <div class="container theme-showcase" role="main">
     
      <div class="page-header">
        <h1>Lançamento de Nota Fiscal</h1>
      </div>
 
 
   <div class="row">
  
   <!--
          <div class="pull-rigth">
 
           <a href='administrativo.php?link=11<?php echo $resultado ['id']; ?>'> <button type='button' class='btn btn-sm btn-info'>Listar</button></a>
        
          </div>-->
 
 
        </div>
      <div class="row">
        <div class="col-md-12">
 
 
          <form class="form-horizontal" method="POST" action="processa/processa_cad_produto.php" enctype="multipart/form-data">
   
                <div class="form-group">
    <label for="inputPassword" class="col-sm-2 control-label">Descrição Contábil</label>
    <div class="col-sm-10">
      <select class="form-control" name="situacao_id">
       
      <option>Selecione</option>
               
      <?php
       $resultado = mysqli_query($conectar,"SELECT * FROM situacao");
       while ($dados = mysqli_fetch_assoc($resultado)){
        ?>
 
        <option value="<?php echo $dados["id"];?>"><?php echo $dados["nome"]; ?> </option>
        <?php
      }
      ?>
      
        </select>
    </div>
     </div>           
               
  <div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label"> Despesa</label>
    <div class="col-sm-10">
      <input type="text" class="form-control" name = "nome" placeholder="Informe o tipo de Despesa">
    </div>
 
 
     <div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">Observação</label>
    <div class="col-sm-10">
      <textarea class="form-control ckeditor"  rows="5" name ="descricao_longa" placeholder= "Descricao Longa do Produto"></textarea>
    </div>
     </div>
 
<div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">Preco</label>
    <div class="col-sm-10">
      <input type="text" class="form-control" name = "preco" placeholder="Preco do Produto">
    </div>
 
  </div>                               
                                              
                                               <input type="checkbox" name="valor1"  value= "127224">Agua Verde<br/>
                                                                
                                               <input type="checkbox" name="valor2" value= "127224">AHU<br/>    
                                                 
                                               <input type="checkbox" name="valor3" value= "127224">BACACHERI<br/>      
                                                                                             
                                               <input type="checkbox" name="valor4" value= "127224">CAJURU<br/>             
                                 
                                               <input type="checkbox" name="valor5" value= "127224">CENTRO<br/>            
                  
                                               <input type="checkbox" name="valor6" value= "127224">MERCES<br/>            
                                 
                                               <input type="checkbox" name="valor7" value= "127224">NOVO MUNDO<br/>
                                
                                               <input type="checkbox" name="valor8" value= "127224">KENNEDY<br/>          
                  
                                               <input type="checkbox" name="valor9" value= "127224">PORTÃO<br/>            
                                 
                                               <input type="checkbox" name="valor10" value= "127224">STA. FELICIDADE<br/>         
                 
                                               <input type="checkbox" name="valor11" value= "127224">CHAMPAGNAT<br/>            
                              
                                               <input type="checkbox" name="valor12" value= "127224">ECOVILLE<br/>        
               
                                               <input type="checkbox" name="valor13" value= "127224">ALTO XV<br/>         
                              
                                               <input type="checkbox" name="valor14" value= "127224" >BATEL<br/>             
                                              
                  
            <input type="text" name="valor15" id="result" value= "0.00">
                                                                                                                             
                                                     
  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <button type="submit" class="btn btn-success">Cadastrar</button><br/>   <br/>   
    </div>
  </div>
</form>
      
        </div>
      </div>
        </div> <!-- /container -->
 
    <script src="js/jquery.min.js"></script>   
    <script src="js/bootstrap.min.js"></script>
    <script src="js/docs.min.js"></script>
    <script src="js/ie10-viewport-bug-workaround.js">
    <script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
    </script>
    </body>
 
  <script>
                               function somar() {
                                               var result = $("input:checked");
                                               var total = 0;
 
                                               for (var i=0; i<result.length; i++)
                                               {
                                                               total = total + parseFloat(result.value);
                                                                                              }
                                                                                              $("#result").val(total.toFixed());
                               }
                               somar();
                               $(":checkbox").click(somar);
                               </script>

</html>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Edit:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title></title>

</head>
<body>

<input type="checkbox" name="Pacote" value="1" >Value = 1 
<input type="text" name="Texto"> %<br />
<input type="checkbox" name="Pacote" value="2" >Value = 2 
<input type="text" name="Texto"> %<br />
<input type="checkbox" name="Pacote" value="3" >Value = 3 
<input type="text" name="Texto"> %<br />
<button onClick="soma()">click me!</button>

<script>
function soma(){
var total = 0;
var sum = 0;
var chkValor = [];
var pacote = document.getElementsByName('Pacote');
var texto = document.getElementsByName('Texto');

//soma de todos os valores para a divisão
  for (var i = 0; i < pacote.length; i++){
      if ( pacote[i].checked ) {
        sum = sum + parseInt(pacote[i].value);
      }
  }

//retorna a %
  for (var i = 0; i < pacote.length; i++){
      if ( pacote[i].checked ) {
        //grava o valor de cada checkbox em um array
        chkValor[i] = parseInt(pacote[i].value);

        //divide o valor do array pela soma total dos chkbox checkados
        total = chkValor[i]/sum;

        texto[i].value = total;

      }
    else
      texto[i].value = '';
  }

//alert(total);
}
</script>

</body>
</html>

É algo mais ou menos assim?

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.