Ir para conteúdo

POWERED BY:

Arquivado

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

Hewitt

Criar campos dinâmicos e somar em PHP!

Recommended Posts

Galera, estou fazendo um sisteminha para um familiar: cálculos de materias-primas. Ela tem um ateliê e quer calcular quanto gasta para fazer determinado item. O código que eu tenho é o seguinte:

    	<form name="calculo" action="" method="post" class="form-inline">
        <div class="form-group">
            <select name="produto[]" class="form-control">
<?
include 'init.php';

	$sql = mysql_query("SELECT * FROM produtos ORDER BY nome");
		while ($res = mysql_fetch_array($sql)){
			
            echo '<option value="'.$res['nome'].'">'.$res['nome'].'</option>';
		}
?>		
			
            </select>
            <label>Quantidade</label>
			<input type="text" class="form-control" name="qnt[]" value="" />
            <label>Preço Unitário</label>
			<input type="text" class="form-control" name="preco[]" value="" />

            <br><br>
            <input class="btn btn-success" type="submit" value="Calcular" name="calcular" />
        </div>
        </form>
        <br><br>
    
    <?php 
		       if( isset ( $_POST[ 'calcular' ] ) ) {
		              for( $i = 0 , $x = count( $_POST['produto'] ) ; $i < $x ; ++ $i ) {
				      echo '<div align="left">';
		                      echo '<b>Produto: </b>'.$_POST['produto'][ $i ].'<br />';
				      echo '<b>Quantidade: </b>'.$_POST['qnt'][ $i ].'<br />'; 
		                      echo '<b>Preço: </b> R$ '.$_POST['preco'][ $i ].'<br />';
				      echo '<b>Total de '.$_POST['produto'][ $i ].' :</b> R$ '.(($_POST['preco'][ $i ]) * ($_POST['qnt'][ $i ])).'<br /><br />';
				      echo '</div>';

				      $total += (($_POST['preco'][ $i ]) * ($_POST['qnt'][ $i ]));

		              }
				      echo '<div class="alert alert-success"><b>Total do Orçamento: R$ '.$total.'</b></div>'; 
		       }
		?>

Funciona perfeitamente, eu poderia deixar 10 campos ali que ele somaria corretamente, mas no caso, queria poder criar os campos dinamicamente: o SELECT (com os dados vindo do BD), e os 2 INPUTS.

Alguém pode me dar uma ajuda?

Obs: E sei que ainda estou usando o MySQL, mas que ainda não treinei o suficiente para migrar! =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se quiser criar campos dinamicamente, somente com JavaScript. Para com PHP, tem que realizar uma nova requisição sempre.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gabriel, obrigado por responder. Realmente, somente com JS. Ficou assim:

<script type="text/javascript">
   $(document).ready(function(){
         $("#add").click(function(){

             $("#calculo").append('<label>Produtos</label><select name="produto[]" class="form-control"><? $sql = mysql_query("SELECT * FROM produtos ORDER BY nome");
                while ($res = mysql_fetch_array($sql)){echo '<option value="'.$res['nome'].'">'.$res['nome'].'</option>';} ?>');			
             $("#calculo").append('<label>Quantidade</label><input type="text" class="form-control" placeholder="quantidade" name="qnt[]" value="" />');
             $("#calculo").append('<label>Preço Unitátio</label><input type="text" class="form-control" placeholder="preço" name="preco[]" value="" /><br><br>');
                 });
   });
</script>

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.