Ir para conteúdo
danluc

Somar input's

Recommended Posts

Boa tarde, tenho esses campos aqui no HTML/PHP ---|

 

  <tr>
        <td colspan="3" class="text-right">Total Bruto:</td>
        <td><?php echo number_format($total, 2);?></td>
        <td>Total Líquido:</td>
<td> 
<input type="text" name="valor_unitario" id="valor_unitario" value="<?php echo number_format($total, 2)?>" hidden />
<input type="text" name="qnt" id="qnt" value="0" hidden />
<input type="text" name="total" id="total" readonly="readonly" size="5" class="text-center" />


</td>
       </tr>
e tenho esse script que faz a conta de Desconto para mim ..|

<script type="text/javascript">
function id(el) {
  return document.getElementById( el );
}
function total( un, qnt ) {
  return parseFloat(un.replace(',', '.'), 10)/100 * parseFloat(qnt.replace(',', '.'), 10);
}
window.onload = function() {
  id('valor_unitario').addEventListener('keyup', function() {
    var result = total( this.value , id('qnt').value );
    id('total').value = String(result.toFixed(2)).formatMoney();
  });

  id('qnt').addEventListener('keyup', function(){
    var result = total( id('valor_unitario').value , this.value );
    id('total').value = String(result.toFixed(2)).formatMoney();
  });
}

String.prototype.formatMoney = function() {
  var v = this;

  if(v.indexOf('.') === -1) {
    v = v.replace(/([\d]+)/, "$1,00");
  }

  v = v.replace(/([\d]+)\.([\d]{1})$/, "$1,$20");
  v = v.replace(/([\d]+)\.([\d]{2})$/, "$1,$2");
  v = v.replace(/([\d]+)([\d]{3}),([\d]{2})$/, "$1.$2,$3");

  return v;
};
</script>
só que ele me traz o valor certo no campo input TOTAL ..

só que ele não me traz em um value=" " ..

como pegar o valor que esta la, e jogar para dentro do HTML no value de um INPUT?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi a dúvida cara..

 

quando ele joga no input TOTAL, ele coloca no .value dele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

só que gostaria de receber esse value em uma variavel php ..
para que eu possar fazer o desconto com o valor liquido e possa passar por um post ...
teria como me ajuda mano, peguei esse exemplo em um site seu ..
ja faz uma semana que mexo com esse carrinho .. mais to apanhando no desconto ..


Compartilhar este post


Link para o post
Compartilhar em outros sites

eu Tenho que passar todas essa informação que estão na tela para um post, para que eu póssa fazer um insert ...

	<th>#</th>
					            <th>Produto</th>
					            <th>Qtd</th>
					            <th>Preço</th>
								<!--<th>Desconto</th>-->
								<th>IPI</th>
					            <th>SubTotal</th>
					            <th></th>
	        </tr>
	    </thead>
	    <tbody>
	    	<?php 
	    	$total = 0;
			$total_l = 0;
			$seq = 0;
	    	foreach($_SESSION['detalle'] as $k => $detalle){ 
			$total += $detalle['PRECO'];
			$total_l += $detalle['subtotal'];
	    	?>
	        <tr>
				<td><?php echo $seq += 1;?>
					<input name="ID" id="ID" value="<?php echo $detalle['ID'];?>" hidden />
				</td>
	        	<td><?php echo utf8_encode($detalle['NOMEFANTASIA']);?></td>
	            <td><?php echo $detalle['cantidad'];?>
					<input type="text" name="quan" id="quan" value="<?php echo $detalle['cantidad'] ?>" hidden />
				</td>
	            <td><?php echo $detalle['PRECO'];?>
					<input type="text" name="PRECO" id="PRECO" value="<?php echo $detalle['PRECO'] ?>" hidden />
				</td>
				<!--<td></td>-->
				<td><?php $ALI =  $detalle['PRECO'] * $detalle['ALIQUOTA']/100; echo $ALI?>
					<input type="text" name="ALI" id="ALI" value="<?php echo $ALI ?>" hidden />
				</td>
				<td><?php echo number_format($detalle['subtotal'], 2);?>
					<input name="total_total" id="total_total" value="<?php echo number_format($detalle['subtotal'], 2)?>" hidden />
				</td>
	            <td><button type="button" class="btn btn-sm btn-danger eliminar-producto" id="<?php echo $detalle['ID'];?>">Eliminar</button></td>
	        </tr>
	        <?php }?>
	        <tr>
	        	<td colspan="3" class="text-right">Total Bruto:</td>
	        	<td><?php echo number_format($total, 2);?></td>
	        	<td>Total Líquido:</td>
				<td>				
				<input type="text" name="valor_unitario" id="valor_unitario" value="<?php echo number_format($total_l, 2)?>" hidden />
				<input type="text" name="qnt" id="qnt" value="0" hidden />
				<input type="text" name="total" id="total" readonly="readonly" size="5" class="text-center" />	
				</td>
	        </tr>
	    </tbody>
	</table>
<?php }else{?>
<div class="panel-body"> Nenhum Produto Selecionado</div>
<?php }?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi muito tua dúvida. Mas Você pode deixar o valor no input mesmo do html, e quando for fazer o post ele vai conseguir o valor do input.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então mano...

eu tenho que somar o valor desse subtotal menos o desconto ...
e como vou pegar o valor desse INPUT

<input type="text" name="total" id="total" readonly="readonly" size="5" class="text-center" />

sendo que ele não tem o atributo VALUE ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite!

 

Antes gostaria de fazer uma explicação rápida que tenho certeza que vai te ajudar a entender o problema.

 

O atributo value é utilizado quando você quer que um input tenha um valor padrão. Ou seja, se você cria um input e coloca o atributo value, o input vai aparecer para o usuário com o valor padrão informado no value. Se o input não tiver value então seu valo será em branco (uma string vazia).

 

Para pegar o valor de um input você pode simplesmente usar javascript. Um exemplo do código abaixo pegaria o valor do seu input.

document.getElementById('total').value

Mesmo seu input não tendo o atributo value, o código acima vai pegar o valor atual do input. Então se o usuário diitar no input o valor: abc e logo após você utilizar o código acima, o retorno será abc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Man ...


Então, Minha duvida é a seguinte, acho que não to conseguindo passar minha dificuldade ...


Duvida: como vocês vê na imagem que postei ai, eu tenho um campo Desconto que coloquei 30% e no campo onde se encontra 76.55 valor liquido é o valor do desconto, mais gostaria de diminuir 76.55 que é 30% de 255.15 ...
e no campo Total liquido ficaria 178.60....


outra duvida, eu trabalho mais com PHP... como eu vou manda um POST desse input sendo que ele não tem value;

poois quando busco com o php a sintaxe fica assim ::

 

$total = $_POST['total'];

...

obrigado por tentarem me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui fazer a soma do desconto aqui ..

 

Assim:

id('qnt').addEventListener('keyup', function(){
    var result = total( id('valor_unitario').value , this.value );
var t  = parseFloat(result);
var t1   = document.getElementById("total_total").value;
var t2   = parseFloat(t1) - t;
    id('total').value = String(t2.toFixed(2)).formatMoney();


  });

agora como passar todos essas informações de form para uma pagina php ?

 

é da mesma maneira tipo para pegar na outra pagian seria

 

 

 

$total = $_POST['total'];

 

?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o trem não eu certo não...


so ta dando desconto no primeiro produto..


CODIGO:

<?php 
	    	$total = 0;
			$total_l = 0;
			$seq = 0;
	    	foreach($_SESSION['detalle'] as $k => $detalle){ 
			$total 		+= $detalle['PRECO'] * $detalle['cantidad'];
			$total_l 	+= $detalle['subtotal'];
	    	?>
	        <tr>
				<td><?php echo $seq += 1;?>
					<input name="ID" id="ID" value="<?php echo $detalle['ID'];?>" hidden />
				</td>
	        	<td><?php echo utf8_encode($detalle['NOMEFANTASIA']);?></td>
	            <td><?php echo $detalle['cantidad'];?>
					<input type="text" name="quan" id="quan" value="<?php echo $detalle['cantidad'] ?>" hidden />
				</td>
	            <td><?php echo $detalle['PRECO'];?>
					<input type="text" name="PRECO" id="PRECO" value="<?php echo $detalle['PRECO'] ?>" hidden />
				</td>
				<!--<td></td>-->
				<td><?php $ALI =  $detalle['PRECO'] * $detalle['ALIQUOTA']/100; echo $ALI?>
					<input type="text" name="ALI" id="ALI" value="<?php echo $ALI ?>" hidden />
				</td>
				<td><?php echo number_format($detalle['subtotal'], 2);?>
					<input name="total_total" id="total_total" value="<?php echo number_format($detalle['subtotal'], 2)?>" hidden />
				</td>
	            <td><button type="button" class="btn btn-sm btn-danger eliminar-producto" id="<?php echo $detalle['ID'];?>">Eliminar</button></td>
	        </tr>
	        <?php }?>
	        <tr>
	        	<td colspan="1" class="text-right"><b>Total Bruto: R$<?php echo number_format($total, 2);?></b></td>
				<td></td>
	        	<td><b>Total Líquido: R$<?php echo number_format($total_l, 2)?></b></td>
	        	<td><b>Total com Desconto:</b> <input type="text" name="valor_unitario" id="valor_unitario" value="<?php echo number_format($total_l, 2)?>" hidden />
				<input type="text" name="qnt" id="qnt" value="0" hidden />
				<input type="text" name="total" id="total" readonly="readonly" size="5" class="text-center" />	</td>
				<td>				
				

				</td>
	        </tr>
	    </tbody>
	</table>
<?php }else{?>
<div class="panel-body"> Nenhum Produto Selecionado</div>
<?php }?>
</div>


<script type="text/javascript">
function id(el) {
  return document.getElementById( el );
}
function total( valor_unitario, qnt ) {
  return parseFloat(valor_unitario.replace(',', '.'), 10)/100 * parseFloat(qnt.replace(',', '.'), 10);
}
window.onload = function() {
  id('valor_unitario').addEventListener('keyup', function() {
    var result = total( this.value , id('qnt').value );
    id('total').value = String(result.toFixed(2)).formatMoney();
  });
  
 id('qnt').addEventListener('keyup', function(){
    var result = total( id('valor_unitario').value , this.value );
	var t	 = parseFloat(result);
	var t1 	 = document.getElementById("total_total").value;
	var t2 	 = parseFloat(t1) - t;
    id('total').value = String(t2.toFixed(2)).formatMoney();
	
  });
}

String.prototype.formatMoney = function() {
  var v = this;

  if(v.indexOf('.') === -1) {
    v = v.replace(/([\d]+)/, "$1,00");
  }

  v = v.replace(/([\d]+)\.([\d]{1})$/, "$1,$20");
  v = v.replace(/([\d]+)\.([\d]{2})$/, "$1,$2");
  v = v.replace(/([\d]+)([\d]{3}),([\d]{2})$/, "$1.$2,$3");

  return v;
};
</script>	

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por JulinhoooO
      Tenho uma função que utiliza a API Youtube v3 do Google para buscar vídeos, e preciso transformar o retorno que ele me envia da duração do vídeo que é em formato ISO8601 para o padrão HH:MM:SS.
       
      O retorno que tenho é o seguinte "PT1H9M58S"
      Onde PT sempre vai existir na string;
      1H será as horas, nesse caso é 1 hora;
      9M será os minutos, no caso são 9 minutos;
      E 58S será os segundos, nesse caso 58 segundo.
       
      A minha dificuldade é que esse tipo de formato não mantém os número que "não existem" na duração. Por exemplo se eu capturar um vídeo de '1:00:09' o retorno será PT1H9S, não terá a parte dos minutos.
       
      Qual a maneira mais fácil de eu transformar essa string em '1:09:58'?
    • Por Pellegrini3834
      Ola queridos amigos programadores em java, tenho duas tabelas:
       
      Pessoa id_pessoa int 225 - autoinclement(Pk) nome varchar 50 Contato id_pessoa int 225(pk) tipoContato varchar 50 descontato varchar 50 *Lembrando que a multiplicidade é um para muitos. Uma pessoa pode ter varios contatos, mas esses contatos so pode pertencer somente a uma pessoa. Tenho este codigo em Poo package modelo; public class Pessoa { private int id_pessoa; private String nome; public int getId_pessoa() { return id_pessoa; } public void setId_pessoa(int id_pessoa) { this.id_pessoa = id_pessoa; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } } package modelo; public class Contato { private int id_pessoa; private String tipocontato; private String descontato; private Pessoa pessoa; public int getId_pessoa() { return id_pessoa; } public void setId_pessoa(int id_pessoa) { this.id_pessoa = id_pessoa; } public String getTipocontato() { return tipocontato; } public void setTipocontato(String tipocontato) { this.tipocontato = tipocontato; } public String getDescontato() { return descontato; } public void setDescontato(String descontato) { this.descontato = descontato; } public Pessoa getPessoa() { return pessoa; } public void setPessoa(Pessoa pessoa) { this.pessoa = pessoa; } E tenho duas camadas de Persistencias (Dao - Data Acess Object) package dao; public class daoPessoa { private Conectar cnx; private String sql; private PreparedStatement pst; private Statement st; private ResultSet rs; public daoPessoa() { this.cnx = new Conectar(); } public void daoIncluirPessoa(Pessoa p) { try { sql = "INSERT INTO pessoa (nome) VALUES(?)"; pst = cnx.getConnection().prepareStatement(sql); pst.setString(1, p.getNome()); pst.executeUpdate(); } catch (SQLException ex) { JOptionPane.showMessageDialog(null, ex); } } package dao; import conexao.Conectar; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import javax.swing.JOptionPane; import modelo.Contato; import modelo.Pessoa; public class daoContato { private Conectar cnx; private String sql; private PreparedStatement pst; private ResultSet rs; public daoContato() { this.cnx = new Conectar(); } public void daoIncluirC(Contato c) { try { sql = "INSERT INTO contato (tipocontato,descontato,id_pessoa) VALUES(?,?,?)"; pst = cnx.getConnection().prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS); pst.setString(1, c.getTipocontato()); pst.setString(2, c.getDescontato()); pst.setInt(3, c.getPessoa().getId_pessoa()); pst.executeUpdate(); ResultSet rs = pst.getGeneratedKeys(); if (rs.next()) { c.setId_pessoa(rs.getInt(1)); pst.close(); } } catch (SQLException ex) { JOptionPane.showMessageDialog(null, ex); } } O ploblema e o seguinte quando eu gravo os dados na tabela pessoa eu tambem queria gravar na tabela Contatos como se fosse um Mestre-Detalhe no delphi mas nao consigo gravar pegando as ids das duas tabelas. exemplo: id - 1 nome - Jose Tipo de Contato: - Descrição: Email Jose@jose.com.br Telefone Fixo (21)0000 - 0000 Telefone Celular (21)00000 - 0000 WhatsApp (21)000 - 00 - 00 - 00 Estou dizendo que a pessoa Jose tem varios contatos. Ok Obrigado gente!!!!  
       
    • Por vitor_dv
      Boa noite,  dia,  Developers.
      Procuro parceiros para me auxiliar nos projetos que se apresentam. Recuso todos e continuo com os meus pois sozinho não quero assumir compromisso. Ainda não atuo na área carecendo de feedback de profissionais. Meu foco é PHP e javascript em segundo plano, porém, os projetos que se apresentão são variados. Não posso oferecer serviços sem parcerias e é interessante para todos reunirmos esforços. Dividimos responsabilidades e lucros. Atualmente tento desenvolver ambiente no vagrant com centos, nginx e apache2 com mariadb e mysql. Estou recomeçando os estudos pois preciso implementar padroes de projetos e TDD  também, mas já tenho alguma bagagem na parte de código que sempre considerei mais importante.
       
      Desculpas aos moderadores se minha pergunta é impropria, mas como o site axilia programadores, tomei a liberdade.
      Desde já agradeço e sucesso a todos.
    • Por pedrohcosta
      Boa tarde Pessoal, 
       
      Sou novo no forum e comecei agora a mexer com javascript e estou me matando para tentar criar uma solução para o meu formulário feito em php. 
      Vou explicar o que o meu formulário faz para vocês entenderem o que eu preciso fazer. 
      Esse formulario eu tenho um campo onde eu preencho o CPF e abaixo tenho uma tag select que eu seleciono o serviço, e tenho um input na frente, onde eu devo colocar o valor do serviço. 
      O select e o input são dinamicos, criei um javascript para adicionar e remover inputs e selects. 
      Até ai tudo bem... mas eu preciso bloquear o input de acordo com o valor do select, eu até consegui fazer, mas apenas na primeira div, quando eu adiciono outro campo com input e select o codigo não funciona para essa div, apenas para a primeira. 
      Segue meu html: 
      <div class="col-sm-3 col-md-3">
                  <label for="teste" class="control-label">Serviço:</label>
                  <select name="tpservico[]" onchange="alterar()" class="sele form-control" autofocus="">
                      <option value="1">Abertura de Conta Poupança</option>
                      <option value="4">Cheque Especial</option>
                      <option value="2">Consignado</option>
                      <option value="8">tesssstennntdao</option>
                  </select>
             </div>
              <div class="col-sm-3 col-md-3">
                         <label for="teste" class="control-label">Valor do Serviço:</label>
                      <input class="form-control" type="text" name="vlserv[]" maxlength="10" onkeyup="moeda(this);" '="" value=""><br>
              </div>
              <div class="col-sm-2 col-md-2" align="center"><br>
                      <button type="button" class="removerCampo btn btn-danger" name="Remover">
                              <i class="glyphicon glyphicon-minus"></i> Remover
                      </button>                
               </div>
       
      Segue o meu codigo java script: 

      function alterar(){    
       
       var sele = document.querySelector('.sele','.form-control');
        
              if(sele.value ==1){
                  alert('campo bloqueado');
              }
               
              if(sele.value ==4){
                  alert('campo bloqueado');
              }
               
              if(sele.value ==8){
                  alert('campo bloqueado');
              }
              
          
      }
       
      Se alguém puder me ajudar ficaria muito grato. 
      Lembrando que esse alert eu coloquei apenas para teste, para ver se o código estava funcionado, ainda vou incrementar o bloqueio do input. 
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.