Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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! =)
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>
Se quiser criar campos dinamicamente, somente com JavaScript. Para com PHP, tem que realizar uma nova requisição sempre.